body {
  overflow: overlay;
  overflow: auto;
  -webkit-overflow-scrolling: touch;
  transition: background 0.25s;

  &:after {
    background-color: #efefef;
    background-image: -webkit-linear-gradient(90deg,
        rgba(60, 10, 30, 0.04) 3%,
        transparent 0),
      -webkit-linear-gradient(1turn, rgba(60, 10, 30, 0.04) 3%, transparent 0);
    background-image: linear-gradient(90deg,
        rgba(60, 10, 30, 0.04) 3%,
        transparent 0),
      linear-gradient(1turn, rgba(60, 10, 30, 0.04) 3%, transparent 0);
    background-size: 20px 20px;
    background-position: 50%;
    background-repeat: repeat;
  }
}

#Joe {
  position: relative;
  z-index: 1;
  display: flex;
  justify-content: space-between;
  flex-direction: column;
  min-height: 100vh;

  .joe_main_container {
    flex: 1;
    margin-top: 20px;
  }

  .aplayer {
    min-height: 90px;

    .aplayer-body {
      .aplayer-bar {
        .aplayer-played {
          background-color: var(--theme) !important;
        }

        .aplayer-thumb {
          background-color: var(--theme) !important;
        }
      }

      .aplayer-time {
        .aplayer-volume {
          background-color: var(--theme) !important;
        }
      }
    }

    .aplayer-list {
      li {
        transition: none !important;

        &.aplayer-list-light {
          background: #fff8f3;

          .aplayer-list-cur {
            background-color: var(--theme) !important;
          }
        }
      }
    }
  }

  .page-links {
    .joe_detail__article {
      padding: 10px 0;

      h3 {
        margin: 20px 0;
      }
    }

    .totals {
      position: relative;
      top: -1px;
      display: inline-block;
      margin-left: 5px;
      padding: 0 5px;
      height: 18px;
      line-height: 18px;
      font-size: 12px;
      color: var(--minor);
      background: var(--sub-background);
      border-radius: 3px;
    }

    .links-group {
      padding-left: 24px;

      h5 {
        font-size: 16px;
      }

      .joe_detail__friends {
        padding-left: 0;
      }
    }
  }

  .page-leaving {
    .joe_comment {
      >h2 {
        display: none;
      }
    }
  }

  .newreply,
  .joe_leaving-list {
    .emoji-item {
      display: inline-block;
      margin: 0 2px;
      padding: 0;
      width: 24px;
      height: 24px;
      overflow: hidden;

      @media (max-width: 860px) {
        transform: scale(0.8);
      }

      img {
        // position: relative;
        // top: -3px;
        display: block;
        width: 24px;
        height: 24px;
        border: 0;
      }
    }

    .emoji-animate {
      position: relative;

      .img {
        cursor: default;
        width: 24px;
        height: 24px;

        &:hover {
          transform: translateY(0);
        }
      }
    }

    .emoji-img {
      position: relative;
      cursor: default;
      width: 20px;
      height: 20px;

      &:hover {
        transform: translateY(0);
      }
    }
  }

  .newreply {
    .emoji-animate {
      top: 5px;

      .img {
        width: 24px;
        height: 24px;
      }
    }

    .emoji-img {
      top: -3px;
      width: 20px;
      height: 20px;
    }
  }
}

.joe_container {
  display: flex;
  flex-direction: row;
  width: 100%;
  margin: 0 auto 30px;
  padding: 0 15px;

  &.revert {
    flex-direction: row-reverse;

    .joe_aside {
      margin-left: 0;
      margin-right: 15px;
    }
  }

  img {
    max-width: 100%;
  }

  // ==== 代码块样式 start
  code:not([class]) {
    display: inline-block;
    font-size: 13px;
    color: var(--code);
    margin: 2px 5px;
    padding: 0 8px;
    white-space: normal;
    text-indent: 0;
    user-select: auto;
    vertical-align: baseline;
    word-break: break-word;
    background: var(--code-background);
    border-radius: var(--radius-inner);
  }

  .code-toolbar {
    position: relative;
    margin: 20px 0;
    overflow: hidden;
    box-shadow: 1px 1px 5px 0 var(--shadow-code);
    border-radius: 8px;

    .toolbar {
      pointer-events: none;
      display: none;
      opacity: 1;
      left: 0;
      right: 0;
      top: 0;
      z-index: unset;
      height: 30px;
      line-height: 30px;
      text-align: center;

      .toolbar-item {
        opacity: 1;
        pointer-events: none;
        user-select: none;

        span {
          font-weight: bold;
          font-size: 14px;
          color: #999;
          background: none;
          border: none;
          box-shadow: none;

          &:hover {
            color: #999;
          }
        }

        &:last-child {
          display: none;
        }
      }

      .autofold-tip {
        padding-left: 5px;
        font-size: 12px;
      }
    }

    pre[class*="language-"] {
      position: relative;
      margin: 0;
      padding: 20px 0 0;
      user-select: auto;
      font-size: 16px;
      overflow: hidden;
      white-space: pre;
      text-shadow: none;
      border-radius: 8px;

      code[class*="language-"] {
        display: block;
        margin-bottom: 0;
        overflow-x: auto;
        -webkit-overflow-scrolling: touch;
        user-select: none;
        padding: 0 12px 12px 18px;
        border-radius: 0 0 8px 8px;
        text-shadow: none;

        .token {

          &.string,
          &.operator {
            background: none;
          }
        }
      }

      .line-numbers-rows {
        left: 0;
        top: 0;
        bottom: 0;
        padding-top: 12px;
        border: none;
      }

      .code-expander {
        cursor: pointer;
        position: absolute;
        right: 10px;
        top: 5px;
        z-index: 2;
        user-select: none;
        font-size: 14px;
        color: #999;
        transition: all 0.25s;

        &:hover {
          filter: brightness(1.2);
        }
      }

      .copy-button {
        position: absolute;
        top: 3px;
        right: 10px;
        z-index: 5;
        font-weight: bold;
        font-size: 14px;
        color: #999;
        cursor: pointer;
        user-select: none;
        transition: opacity 0.25s;

        &:hover {
          filter: brightness(1.2);
        }
      }

      &.c_title {
        +.toolbar {
          display: block;
        }

        code {
          padding: 12px 12px 12px 18px;
        }
      }

      &.c_hr {
        padding: 30px 0 0;

        &:after {
          position: absolute;
          top: 30px;
          z-index: 1;
          content: "";
          width: 100%;
          height: 1px;
          background: #d8d8d8;
          mix-blend-mode: overlay;
        }

        code {
          padding: 12px 12px 14px 18px;
        }
      }

      &.c_macdot:before {
        content: "";
        position: absolute;
        top: 9px;
        left: 12px;
        z-index: 1;
        width: 12px;
        height: 12px;
        border-radius: 50%;
        background: #fc625d;
        box-shadow: 20px 0 #fdbc40, 40px 0 #35cd4b;
      }

      &.c_newline {
        code {
          white-space: pre-wrap;
          word-break: break-all;
        }
      }

      &.c_hover_tools {

        .code-expander,
        .copy-button {
          pointer-events: none;
          opacity: 0;
        }

        &:hover {

          .code-expander,
          .copy-button {
            pointer-events: auto;
            opacity: 1;
          }
        }
      }

      &.c_copy {
        user-select: auto;

        code {
          user-select: auto;
        }

        .code-expander {
          right: 40px;
        }
      }

      &.line-numbers {
        code {
          padding: 12px 12px 16px 54px;
        }
      }

      &.close {
        height: 30px;

        .code-expander {
          transform: rotate(90deg);
        }

        &:after {
          visibility: hidden;
        }
      }
    }
  }

  // 代码块样式 end ====
}

.joe_main {
  min-width: 0;
  flex: 1;
  padding-bottom: 15px;
}

.joe_dropdown {
  position: relative;

  &__link {
    display: flex;
    align-items: center;

    &-icon {
      transition: transform 0.35s;
      margin-left: -12px;
    }
  }

  &__menu {
    position: absolute;
    left: 50%;
    visibility: hidden;
    z-index: 5;
    border-top: 3px solid var(--theme);
    transform-origin: top;
    background: var(--sib-background);
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
    border-radius: 0 0 var(--radius-inner) var(--radius-inner);
    padding: 10px 0;
    opacity: 0;
    transform: translateX(-50%) perspective(600px) rotateX(-45deg);
    transition: opacity 0.35s, visibility 0.35s, transform 0.35s;

    &::before {
      content: "";
      position: absolute;
      top: -10px;
      left: 50%;
      transform: translateX(-50%);
      width: 0;
      height: 0;
      border-left: 7px solid transparent;
      border-right: 7px solid transparent;
      border-bottom: 7px solid var(--theme);
    }
  }

  &.active {
    .joe_dropdown__link-icon {
      transform: rotate(-180deg);
    }

    .joe_dropdown__menu {
      visibility: visible;
      opacity: 1;
      transform: translateX(-50%) perspective(600px) rotateX(0);
    }
  }
}

.joe_header {
  position: relative;
  z-index: 100;
  height: 60px;

  .joe_container {
    margin: 0 auto;
  }

  .full {
    max-width: 100% !important;
  }

  &__above {
    position: fixed;
    top: 0;
    z-index: 6;
    width: 100%;
    background: var(--background);
    box-shadow: 0 2px 10px 0 rgba(0, 0, 0, 0.2);
    transform: translate3d(0, 0, 0);
    will-change: opacity, transform;
    transition: opacity, transform 0.35s;

    .joe_container {
      align-items: center;
      width: 100%;
      min-height: 44px;
      max-width: auto !important;
    }

    &-logo {
      position: relative;
      display: flex;
      align-items: center;
      height: 60px;
      margin-right: 10px;
      padding-right: 18px;

      img {
        min-width: 40px;
        max-width: 150px;
        height: 40px;
        object-fit: cover;
      }

      svg {
        display: none;
      }

      &::after {
        content: "";
        position: absolute;
        top: 50%;
        right: 0;
        width: 1px;
        height: 20px;
        background: var(--classC);
        transform: translateY(-50%);
      }
    }

    &-nav {
      display: flex;
      align-items: center;

      .item {
        cursor: pointer;
        display: flex;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        position: relative;
        height: 60px;
        line-height: 60px;
        font-size: 15px;
        padding: 0 8px;
        margin-right: 10px;
        user-select: none;
        white-space: nowrap;
        color: var(--main);
        transition: color 0.35s;

        >i {
          display: inline-block;
          margin-right: 4px;
          font-size: 18px;
          transition: transform 0.5s;
        }

        &:last-child {
          margin-right: 0;
        }

        &::after {
          opacity: 0;
          position: absolute;
          bottom: 0;
          left: 6px;
          right: 6px;
          content: "";
          height: 3px;
          transform: scaleX(0.25);
          background: var(--theme);
          border-radius: 6px 6px 0 0;
          transition: opacity 0.5s, transform 0.5s;
        }

        &.current {
          color: var(--theme);

          &::after {
            opacity: 1;
            transform: scaleX(1);
          }

          &:hover::after {
            opacity: 1;
            transform: scaleX(1);
          }
        }

        &:hover {
          color: var(--theme);

          &::after {
            opacity: 0.3;
            transform: scaleX(0.7);
          }

          &+.joe-icon-arrow-down {
            color: var(--theme) !important;
          }
        }
      }

      &.active-shadow {
        .item.current {
          text-shadow: 0 4px 20px var(--theme);
        }
      }

      &.active-animate {
        .item:hover .m-icon {
          // transform: translateY(-2px);
          animation: dung 0.3s 0.12s ease;
        }
      }

      .joe_dropdown {
        margin-right: 15px;

        &__link {
          a {
            height: 60px;
            line-height: 60px;
            font-size: 15px;
            padding-left: 8px;
            padding-right: 3px;
            transition: color 0.35s;
            white-space: nowrap;
            color: var(--main);
          }
        }

        &__menu {
          min-width: 90px;
          max-width: 200px;
          text-align: center;

          a {
            display: block;
            height: 34px;
            margin-right: 0;
            line-height: 34px;
            color: var(--classF);
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            padding: 0 15px;
            transition: color 0.35s, background 0.35s;

            &::after {
              display: none;
            }

            &:hover,
            &.current {
              color: var(--theme);
              background: var(--sib);
            }
          }
        }

        .item:hover:after {
          display: none;
        }

        &.active {
          .joe_dropdown__link {

            a,
            i {
              color: var(--theme) !important;

              &::after {
                display: none;
              }
            }
          }
        }
      }

      .joe_nav_sub-li {
        position: relative;
        height: 34px;

        .m-icon {
          vertical-align: bottom;
        }

        &:hover {
          .joe_nav_sub {
            visibility: visible;
            opacity: 1;
            transform: translateX(0) perspective(600px) rotateY(0);
          }
        }
      }

      .joe_nav_sub {
        visibility: hidden;
        z-index: 10;
        transform-origin: top;
        opacity: 0;
        position: relative;
        left: 100%;
        top: -34px;
        padding-left: 7px;
        box-shadow: 7px 3px 8px 0px rgba(0, 0, 0, 0.15);
        border-radius: 0 var(--radius-inner) var(--radius-inner) 0;
        transform: translateX(-20%) perspective(600px) rotateY(-45deg);
        transition: opacity 0.35s, visibility 0.35s, transform 0.35s;

        &::before {
          position: absolute;
          top: 10px;
          left: 0;
          content: "";
          transform: translateX(-50%);
          width: 0;
          height: 0;
          border: 7px solid transparent;
          border-right-color: var(--theme);
        }

        &::after {
          position: absolute;
          top: 0;
          left: 7px;
          content: "";
          width: 2px;
          height: 100%;
          background: var(--theme);
        }

        li {
          background: var(--sib-background);
        }
      }
    }

    &-search,
    &-search-mobile {
      position: relative;
      margin-left: auto;
      display: flex;
      align-items: center;

      .input {
        background: var(--classC);
        width: 170px;
        height: 34px;
        border: 1px solid transparent;
        padding: 0 14px 0 16px;
        color: var(--routine);
        transition: width 0.35s, border-color 0.35s, padding-right 0.35s;
        border-radius: 17px 0 0 17px;

        &:focus {
          background: var(--background);
          border-color: var(--theme);
          padding-right: 28px;
          width: 170px;

          ~.icon {
            transform: translate3d(0, -50%, 0) rotateY(180deg);
          }
        }
      }

      @keyframes swag {
        0% {
          transform: rotate(-10deg);
        }

        50% {
          transform: rotate(0deg);
        }

        100% {
          transform: rotate(10deg);
        }
      }

      .submit {
        position: relative;
        z-index: 1;
        width: 50px;
        height: 34px;
        color: #fff;
        border: none;
        background: var(--theme);
        border-radius: 0 17px 17px 0;

        i {
          transform-origin: right bottom;
          font-size: 20px;
        }

        &:hover i {
          animation: swag 0.3s ease infinite alternate;
        }
      }

      .icon {
        position: absolute;
        top: 50%;
        right: 44px;
        width: 28px;
        height: 38px;
        background: url();
        background-size: 100% 100%;
        transition: transform 0.35s;
        transform: translate3d(100%, -50%, 0) rotateY(180deg);
      }

      .result {
        position: absolute;
        z-index: 2;
        top: 60px;
        left: 0;
        right: 0;
        user-select: none;
        visibility: hidden;
        opacity: 0;
        background: var(--sib-background);
        box-shadow: 0 0 10px rgba(0, 0, 0, 0.15);
        border-radius: var(--radius-inner);
        transition: visibility 0.35s, opacity 0.35s, transform 0.35s;
        transform: translate3d(0, 15px, 0);

        &.active {
          transform: translate3d(0, 0, 0);
          opacity: 1;
          visibility: visible;
        }

        .item {
          height: 40px;
          line-height: 40px;
          display: flex;
          align-items: center;
          overflow: hidden;
          padding: 0 10px;
          border-bottom: 1px solid var(--classD);
          transition: background 0.35s;

          &:last-child {
            border-bottom: none;
          }

          &:nth-child(1) .sort {
            background: #fe2d46;
          }

          &:nth-child(2) .sort {
            background: #f60;
          }

          &:nth-child(3) .sort {
            background: #faa90e;
          }

          &:hover {
            background: var(--classC);
          }

          .sort {
            color: #fff;
            background: #7f7f8c;
            width: 18px;
            height: 18px;
            line-height: 18px;
            border-radius: 2px;
            text-align: center;
            margin-right: 8px;
            font-weight: 500;
          }

          .text {
            flex: 1;
            min-width: 0;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            color: var(--routine);
            font-size: 12px;
          }

          .views {
            color: var(--seat);
            font-size: 12px;
            margin-left: 5px;
          }
        }
      }
    }

    &-search-mobile {
      input {
        flex: 1;
        width: 100%;
      }
    }

    &-searchicon {
      display: none;
      cursor: pointer;
      font-size: 23px !important;
      color: var(--routine);
    }

    &-slideicon {
      display: none;
      cursor: pointer;
      width: 20px;
      height: 20px;
      color: var(--routine);
    }

    &.active {
      transform: translate3d(0, -60px, 0);
    }

    &.glass {
      backdrop-filter: blur(4px);
      background: var(--glass-background);
    }

    &.solid {
      backdrop-filter: unset;
      background: var(--background);
      box-shadow: unset;
    }
  }

  &__below {
    position: relative;
    border-top: 1px solid var(--classC);
    height: 45px;

    &-title {
      max-width: 450px;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
      display: none;
      line-height: 45px;
      font-size: 17px;
      font-weight: 700;
      color: var(--main);
      animation: showHeaderTitle 0.35s;
    }

    &-class {
      display: flex;

      .item {
        margin-right: 15px;
        height: 45px;
        line-height: 45px;
        white-space: nowrap;
        color: var(--minor);
        transition: color 0.35s;

        &:hover,
        &.active {
          color: var(--theme);
        }
      }

      .joe_dropdown {
        margin-right: 15px;

        &__link {
          .item {
            margin-right: 3px;
          }
        }

        &__menu {
          width: 110px;
          text-align: center;

          a {
            display: block;
            height: 34px;
            line-height: 34px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            color: var(--classF);
            transition: color 0.35s, background 0.35s;

            &:hover,
            &.active {
              color: var(--theme);
              background: var(--classD);
            }
          }
        }
      }
    }

    &-sign {
      margin-left: auto;

      .joe_dropdown {
        &__link {
          display: flex;
          align-items: center;
          height: 45px;
          color: var(--minor);
          cursor: pointer;
          user-select: none;
          transition: color 0.35s;

          .icon {
            fill: var(--minor);
            margin-right: 3px;
            transition: fill 0.35s;
          }

          &:hover {
            color: var(--theme);

            .icon {
              fill: var(--theme);
            }
          }
        }

        &__menu {
          width: 110px;
          text-align: center;

          a {
            display: block;
            height: 34px;
            line-height: 34px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            color: var(--minor);
            transition: color 0.35s, background 0.35s;

            &:hover,
            &.active {
              color: var(--theme);
              background: var(--classD);
            }
          }
        }
      }

      .item {
        display: flex;
        align-items: center;
        height: 45px;
        color: var(--minor);

        .icon {
          fill: var(--minor);
          margin-right: 5px;
        }

        a {
          color: var(--minor);
          transition: color 0.25s;

          &:hover {
            color: var(--theme);
          }
        }

        .split {
          margin: 0 5px;
        }
      }
    }
  }

  &__searchout {
    position: absolute;
    top: 60px;
    left: 0;
    right: 0;
    z-index: 5;
    background: var(--background);
    border-top: 1px solid var(--classC);
    transform: translate3d(0, -100%, 0);
    transition: transform 0.35s, visibility 0.35s;
    visibility: hidden;

    .joe_container {
      margin-bottom: 10px !important;
    }

    &.active {
      visibility: visible;
      transform: translate3d(0, 0, 0);
    }

    &-inner {
      padding: 15px 0;
      width: 100%;

      .search {
        width: 100%;
        display: flex;
        align-items: center;

        input {
          flex: 1;
          height: 36px;
          padding: 0 10px;
          border: 1px solid var(--classB);
          border-right: none;
          border-radius: 2px 0 0 2px;
          color: var(--routine);
          background: var(--classD);
        }

        button {
          padding: 0 16px;
          height: 36px;
          border: none;
          background: var(--theme);
          color: #fff;
          border-radius: 0 2px 2px 0;
        }
      }

      .title {
        color: var(--routine);
        padding: 14px 0 10px;
        font-size: 14px;
        display: flex;
        align-items: center;

        .joe-font {
          margin-right: 5px;
          font-size: 20px;
          color: var(--routine);
        }
      }

      .cloud {
        display: flex;
        flex-wrap: wrap;
        margin: 0 -5px -5px;
        max-height: 250px;
        overflow-y: auto;
        -webkit-overflow-scrolling: touch;
        overscroll-behavior: contain;

        .item {
          padding: 4px;

          a {
            display: block;
            padding: 0 10px;
            height: 24px;
            line-height: 24px;
            border-radius: 2px;
            font-size: 12px;
            color: #fff;
          }
        }
      }
    }
  }

  &__slideout {
    visibility: hidden;
    position: fixed;
    top: 0;
    bottom: 0;
    left: 0;
    z-index: 10;
    width: 78%;
    max-width: 480px;
    background: var(--classD);
    transform: translate3d(-100%, 0, 0);
    transition: transform 0.35s, visibility 0.35s;

    &-wrap {
      position: relative;
      padding: 135px 15px 15px;
      height: 100%;
      overflow-y: auto;
      -webkit-overflow-scrolling: touch;
      overscroll-behavior: contain;

      &::-webkit-scrollbar {
        display: none;
      }
    }

    &.active {
      visibility: visible;
      transform: translate3d(0, 0, 0);
    }

    &-image {
      position: absolute;
      top: 0;
      left: 0;
      width: 100%;
      height: 150px;
      object-fit: cover;
      z-index: -1;
    }

    &-author {
      display: flex;
      margin-bottom: 15px;
      background: var(--background);
      border-radius: var(--radius-wrap);
      padding: 15px;
      box-shadow: var(--box-shadow);

      .avatar {
        width: 50px;
        height: 50px;
        margin-right: 10px;
        // background: var(--background);
        border-radius: var(--radius-inner);
      }

      .info {
        overflow: hidden;
        line-height: 25px;

        .level {
          height: 23px;
          margin-left: 2px;
        }

        .link,
        .motto {
          white-space: nowrap;
          text-overflow: ellipsis;
          overflow: hidden;
        }

        .link {
          display: block;
          font-size: 15px;
          font-weight: 500;
          color: var(--main);
        }

        .motto {
          font-size: 12px;
          color: var(--routine);
        }
      }
    }

    &-count {
      margin-bottom: 15px;
      padding: 10px 15px;
      background: var(--background);
      border-radius: var(--radius-wrap);
      box-shadow: var(--box-shadow);

      .item {
        display: flex;
        align-items: center;
        color: var(--routine);
        padding: 5px 0;

        .joe-font {
          color: var(--routine);
          margin-right: 5px;
        }

        strong {
          font-weight: 500;
          color: var(--theme);
        }
      }
    }

    &-menu {
      background: var(--background);
      padding: 10px 15px;
      border-radius: var(--radius-wrap);
      overflow: hidden;
      box-shadow: var(--box-shadow);

      .link {
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 10px 0;
        color: var(--main);
        transition: color 0.15s;

        a {
          transition: color 0.15s;
          color: var(--routine);
        }

        .joe-font {
          color: var(--minor);
          transition: transform 0.15s, fill 0.15s;
        }

        &.in {
          color: var(--theme);

          a {
            color: var(--theme);
          }

          .joe-font {
            color: var(--theme);
            transform: rotate(90deg);
          }
        }
      }

      .current {
        a {
          color: var(--theme);
          font-weight: 500;
          font-size: 15px;
        }
      }

      .slides {
        display: none;
        border-left: 1px solid var(--classC);
        padding-left: 15px;

        .link {
          color: var(--routine);
        }

        .current {
          color: var(--theme);
          font-weight: 500;
          font-size: 15px;
        }
      }
    }
  }

  &__mask {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 4;
    background: rgba(0, 0, 0, 0.5);
    backdrop-filter: blur(5px);
    opacity: 0;
    visibility: hidden;
    transition: visibility 0.35s, opacity 0.35s;

    &.active {
      visibility: visible;
      opacity: 1;
    }

    &.slideout {
      z-index: 6;
    }
  }
}

.joe_index {
  background: var(--background);
  border-radius: var(--radius-wrap);
  box-shadow: var(--box-shadow);

  &__title {
    display: flex;
    align-items: center;
    border-bottom: 1px solid var(--classC);

    &-title {
      position: relative;
      display: flex;
      align-items: center;
      color: var(--theme);
      font-weight: 500;
      height: 44px;
      line-height: 44px;

      .item {
        cursor: pointer;
        margin-right: 16px;
        user-select: none;
        color: var(--routine);
        transition: color 0.35s;

        &.active {
          color: var(--theme);
          font-weight: bold;
        }
      }

      .totals {
        display: inline-block;
        margin-left: 5px;
        padding: 0 5px;
        height: 18px;
        line-height: 18px;
        font-size: 12px;
        color: var(--minor);
        background: var(--sub-background);
        border-radius: 3px;
      }

      .line {
        position: absolute;
        bottom: -1px;
        left: 0;
        height: 2px;
        content: "";
        background: var(--theme);
        border-radius: 1px;
        transition: left 0.35s, width 0.35s;
      }

      &.default {
        .item {
          cursor: default;
        }
      }

      &.pl-15 {
        padding-left: 15px;
      }
    }

    &-notice {
      display: flex;
      align-items: center;
      margin-left: auto;
      height: 40px;

      svg,
      i {
        margin-right: 2px;
        vertical-align: bottom;
      }

      a {
        color: var(--minor);
        line-height: 20px;
        max-width: 300px;
        overflow: hidden;
        text-overflow: ellipsis;
        white-space: nowrap;
        transition: color 0.35s;

        &:hover {
          color: var(--theme);
        }
      }
    }
  }

  &__hot {
    padding: 0 15px;

    &.categories {
      padding-bottom: 10px;
    }

    &-list {
      display: grid;
      grid-template-columns: repeat(4, 1fr);
      column-gap: 15px;
      padding-top: 12px;

      &.hotlist {
        .item {
          margin-bottom: 0;

          .link .inner {
            .title {
              position: absolute;
              display: flex;
              flex-wrap: nowrap;
              justify-content: center;
              align-items: center;
              left: 0;
              top: 0;
              bottom: 0;
              right: 0;
              color: #fff;
              font-size: 14px;
              background: rgba(0, 0, 0, 0.4);
              transition: background 0.5s;
              will-change: background;
            }

            &:hover {
              .image {
                background: rgba(0, 0, 0, 0.5);
                transform: scale(1.1);
              }

              .title {
                background: rgba(0, 0, 0, 0.3);
              }
            }

            .post-nums {
              display: flex;
              align-items: center;
              position: absolute;
              z-index: 1;
              top: 5px;
              right: 5px;
              height: 18px;
              padding: 0 8px;
              color: #fff;
              white-space: nowrap;
              font-size: 12px;
              background-image: linear-gradient(to right, #fc712a, #f84c39);
              background-color: #f84c39;
              border-radius: 8px;
            }
          }

          &:nth-child(2) {
            animation-delay: 0.1s;
          }

          &:nth-child(3) {
            animation-delay: 0.2s;
          }

          &:nth-child(4) {
            animation-delay: 0.3s;
          }
        }
      }

      .item {
        margin-bottom: 10px;
        border: 1px solid var(--classC);
        overflow: hidden;
        border-radius: 4px;

        .link {
          display: block;

          .inner {
            position: relative;

            &:hover {
              .image {
                opacity: 0.85;
              }

              .title {
                background: var(--classC);
              }
            }

            .image {
              width: 100%;
              height: 120px;
              object-fit: cover;
              border-radius: var(--radius-inner) var(--radius-inner) 0 0;
              transition: opacity 0.35s, transform 0.3s;
              will-change: transform;
            }

            .title {
              font-size: 13px;
              white-space: nowrap;
              overflow: hidden;
              text-overflow: ellipsis;
              text-align: center;
              padding: 0 8px;
              line-height: 32px;
              color: var(--minor);
              background: var(--classD);
              border-radius: 0 0 var(--radius-inner) var(--radius-inner);
            }

            // .views {
            //   display: flex;
            //   align-items: center;
            //   position: absolute;
            //   z-index: 1;
            //   top: 5px;
            //   right: 5px;
            //   height: 18px;
            //   padding: 0 8px;
            //   color: #fff;
            //   white-space: nowrap;
            //   font-size: 12px;
            //   background-image: linear-gradient(to right, #fc712a, #f84c39);
            //   background-color: #f84c39;
            //   border-radius: 8px;
            // }

            .post-nums {
              display: flex;
              align-items: center;
              position: absolute;
              z-index: 1;
              top: 5px;
              right: 5px;
              height: 18px;
              padding: 0 8px;
              font-style: normal;
              color: #fff;
              white-space: nowrap;
              font-size: 12px;
              background-image: linear-gradient(to right, #2afcfc, #4f3edd);
              background-color: #4f3edd;
              border-radius: 8px;
            }
          }
        }
      }
    }

    &-list-tag {
      padding-top: 20px;
      overflow: hidden;

      .item {
        float: left;
        margin: 0 6px 10px;
        font-size: 14px;
        color: var(--routine);
        background: var(--background-tags);
        border: 1px solid var(--classB);
        border-radius: 3px;
        transition: transform 0.25s;

        a {
          display: block;
          padding: 0 10px;
          height: 28px;
          line-height: 28px;
          font-size: 0;
          color: var(--routine);

          span {
            display: inline-block;
            max-width: 120px;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;
            font-size: 14px;
          }

          em {
            display: inline-block;
            padding-left: 5px;
            vertical-align: top;
            font-size: 14px;
            font-style: normal;
            color: var(--theme);
          }
        }

        &:hover {
          transform: scale(1.1);
          background: var(--theme);
          border-color: var(--theme);
          box-shadow: var(--box-shadow-tags);

          a {
            color: var(--classD);

            em {
              color: var(--classD);
            }
          }
        }
      }
    }
  }
}

.joe_aside {
  padding-bottom: 15px;
  margin-left: 15px;

  &.hide {
    display: none;
  }

  &.pos_left {
    #he-plugin-simple {
      right: auto !important;
      left: 4px;
    }
  }

  &__item {
    position: relative;
    width: 280px;
    margin-bottom: 15px;
    border-radius: var(--radius-wrap);
    box-shadow: var(--box-shadow);
    overflow: hidden;

    &:last-child {
      position: sticky;
      top: 75px;
      margin-bottom: 0;
      transition: top 0.35s;
    }

    &-title {
      position: relative;
      display: flex;
      align-items: center;
      font-size: 16px;
      font-weight: 500;
      height: 45px;
      line-height: 45px;
      padding: 0 15px;
      color: var(--classF);
      border-bottom: 1px solid var(--classC);

      .joe-font {
        margin-right: 5px;
        font-size: 20px;
        font-weight: bold;
        color: var(--theme);
      }

      .line {
        width: 10px;
        height: 1px;
        background: #54b5db;
        margin-left: 12px;
      }
    }

    &-contain {
      position: relative;
      padding: 15px;
    }

    &.author {
      background: var(--background);
      padding: 45px 15px 15px;

      &::before {
        content: "";
        position: absolute;
        top: 90px;
        left: 0;
        width: 100%;
        height: 30px;
        z-index: 2;
        background: linear-gradient(to bottom,
            rgba(255, 255, 255, 0),
            var(--background));
      }

      #he-plugin-simple {
        top: 4px;
        right: 4px;
        z-index: 6;

        .s-sticker {
          background-color: rgba(0, 0, 0, 0.5) !important;
        }

        .s-sticker-cond img {
          position: relative;
          top: -2px;
        }

        &.he_left {
          right: auto;
          left: 4px;
        }

        >div:last-child {
          margin-top: -5px !important;

          >div {
            overflow: hidden;
            background-color: #242422;
            border-radius: 4px;
          }
        }
      }

      #canvas-strips {
        opacity: 0;
        position: absolute;
        z-index: 5;
        pointer-events: none;
        left: 0;
        top: 0;
      }

      &:hover #canvas-strips {
        opacity: 1;
      }

      .image {
        position: absolute;
        top: 0;
        left: 0;
        width: 100%;
        height: 120px;
        object-fit: cover;
        z-index: 1;
        border-radius: var(--radius-wrap) var(--radius-wrap) 0 0;
      }

      .user {
        position: relative;
        z-index: 4;
        display: flex;
        flex-direction: column;
        align-items: center;
        padding-bottom: 15px;

        .avatar_wrapper {
          position: relative;
          width: 75px;
          height: 75px;
          margin-bottom: 12px;
          user-select: none;

          &.round .avatar {
            border-radius: 6px;
          }
        }

        .avatar {
          display: block;
          width: 75px;
          height: 75px;
          overflow: hidden;
          padding: 5px;
          object-fit: cover;
          background: var(--classC);
          transition: transform 0.75s;
          border-radius: 50%;

          &:hover {
            transform: rotate(360deg);
          }
        }

        .avatar_frame {
          position: absolute;
          left: 0;
          top: 0;
          z-index: 2;
          width: 75px;
          height: 75px;
          max-width: unset;
          pointer-events: none;
          transform: scale(1.23);
          filter: drop-shadow(1px 1px 2px var(--classL));

          &.rainbow-girl,
          &.honor-light {
            top: 1px;
          }

          &.bird-girl {
            left: -2px;
            top: -2px;
            width: 80px;
            height: 80px;
          }

          &.purple-crystal {
            top: 2px;
            width: 74px;
            height: 74px;
          }

          &.flower-ring {
            left: -3px;
            top: -2px;
            width: 78px;
            height: 78px;
          }

          &.lantern-cloud {
            left: -5px;
            top: -3px;
            width: 78px;
            height: 78px;
          }

          &.ease-cloud {
            left: -1px;
            top: -3px;
            width: 80px;
            height: 80px;
          }

          &.festival-luck {
            left: -2px;
            top: -3px;
            width: 78px;
            height: 78px;
          }

          &.happy-mouse {
            left: -2px;
            top: 1px;
            width: 80px;
            height: 80px;
          }

          &.two-mouse {
            left: -3px;
            top: -4px;
            width: 82px;
            height: 82px;
          }

          &.bull-puff {
            left: -1px;
            top: -1px;
            width: 76px;
          }

          &.christmas-knot {
            left: -7px;
            top: -15px;
            width: 90px;
            height: 90px;
          }

          &.christmas-ring {
            left: -4px;
            top: -2px;
            width: 80px;
            height: 80px;
          }

          &.santa-claus {
            left: -13px;
            top: -8px;
            width: 88px;
            height: 88px;
          }

          &.catcus {
            left: -3px;
            top: -4px;
            width: 82px;
            height: 82px;
          }

          &.rabbit {
            left: -7px;
            top: -8px;
            width: 90px;
            height: 90px;
          }

          &.gaoda {
            left: -12px;
            top: -11px;
            width: 98px;
            height: 98px;
          }

          &.donut {
            left: -2px;
            top: -6px;
            width: 78px;
            height: 80px;
          }

          &.bat {
            left: -11px;
            top: -12px;
            width: 98px;
            height: 98px;
          }

          &.bilibili {
            left: -11px;
            top: -10px;
            width: 90px;
            height: 90px;
          }

          &.constellation {
            left: -7px;
            top: -8px;
            width: 90px;
            height: 90px;
          }

          &.putin {
            left: -9px;
            top: -10px;
            width: 97px;
            height: 97px;
          }

          &.princess {
            left: -10px;
            top: -10px;
            width: 94px;
            height: 94px;
          }

          &.mangci {
            left: -11px;
            top: -11px;
            width: 97px;
            height: 97px;
          }

          &.maid {
            left: -11px;
            top: -13px;
            width: 98px;
            height: 98px;
          }

          &.orchid {
            left: -11px;
            top: -11px;
            width: 98px;
            height: 98px;
          }

          &.gulu {
            left: -11px;
            top: -11px;
            width: 98px;
            height: 98px;
          }

          &.gufeng {
            left: -5px;
            top: -8px;
            width: 90px;
            height: 90px;
          }
        }

        .avatar_widget {
          position: absolute;
          left: 0;
          top: -10px;
          z-index: 3;
          width: 75px;
          max-width: unset;
          pointer-events: none;


          &.wing {
            top: -28px;
          }

          &.rotate-heart {
            top: 8px;
          }

          &.zouni {
            left: 0;
            top: 52px;
          }

          &.fall-in-love {
            left: -23px;
            top: -13px;
            width: 115px;
          }
        }

        .link {
          color: var(--theme);
          margin-bottom: 10px;
          text-align: center;
          font-size: 16px;
          font-weight: 500;
          text-shadow: 1px 1px 8px var(--theme);

          .level {
            height: 24px;
            margin-left: 2px;
          }
        }

        .motto {
          color: var(--main);
          text-align: center;
          word-break: break-word;
        }
      }

      .count {
        width: 100%;
        padding-bottom: 10px;
        display: flex;
        align-items: center;

        .item {
          position: relative;
          min-width: 0;
          flex: 1;
          display: flex;
          flex-direction: column;
          align-items: center;
          color: var(--routine);
          font-size: 12px;

          &:after {
            position: absolute;
            top: 12px;
            right: 0;
            content: "";
            width: 1px;
            height: 30px;
            background: var(--classC);
          }

          &:last-child:after {
            display: none;
          }

          .num {
            max-width: 70px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            font-weight: 500;
            font-size: 22px;
            color: var(--title);
            margin-bottom: 3px;
            text-shadow: var(--text_shadow);
          }
        }
      }

      .social-account {
        display: flex;
        justify-content: space-around;
        align-items: center;
        padding-top: 10px;
        text-align: center;
        font-size: 14px;
        border-top: 1px solid var(--classC);

        a {
          transform: scale(0.9);
          display: inline-block;
          margin: 0 2px;
          font-size: 0;
          color: var(--minor);
          transition: transform 0.2s;

          img {
            display: inline-block;
            height: 20px;
            border-radius: 3px;
          }

          &:hover {
            transform: scale(1);
          }
        }
      }

      .list {
        padding-top: 15px;

        .item {
          display: flex;
          align-items: center;
          justify-content: space-between;
          line-height: 30px;

          .link {
            position: relative;
            color: var(--routine);
            max-width: 85%;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;

            &::after {
              content: "";
              position: absolute;
              bottom: 0;
              left: 0;
              width: 0;
              height: 1px;
              background: var(--theme);
              transition: all 0.35s;
            }

            &:hover {
              color: var(--theme);

              &::after {
                width: 100%;
              }
            }
          }
        }
      }
    }

    &.newest {
      background: var(--background);

      .list {
        padding-top: 1px;

        .item {
          margin-bottom: 15px;
          display: flex;
          align-items: center;
          justify-content: space-between;
          line-height: 20px;

          .joe-font {
            font-size: 18px;
            color: var(--routine);
            transition: transform 0.3s;
          }

          &:hover {
            .link {
              color: var(--theme);

              &:after {
                width: 100%;
              }
            }

            .joe-font {
              transform: rotate(-135deg);
              color: var(--theme);
            }
          }

          &:last-child {
            margin-bottom: 0;
          }

          .title {
            font-size: 12px;
            color: var(--minor);
            margin-bottom: 5px;
            display: flex;
            align-items: center;

            .text {
              color: var(--theme);
              font-weight: 500;
              font-size: 14px;
              margin: 0 5px;
            }
          }

          .link {
            position: relative;
            color: var(--routine);
            max-width: 85%;
            overflow: hidden;
            text-overflow: ellipsis;
            white-space: nowrap;

            &:after {
              content: "";
              position: absolute;
              bottom: 0;
              left: 0;
              width: 0;
              height: 1px;
              background: var(--theme);
              transition: all 0.35s;
            }
          }
        }
      }
    }

    &.notice {
      background: var(--background);

      .joe_aside__item-title {
        color: var(--notice);

        .joe-font {
          color: var(--notice);
        }
      }

      .joe_aside__item-contain {
        background: var(--background-notice);
        box-shadow: var(--shadow-notice);
        animation: var(--animation-notice);
      }

      .notice_content {
        white-space: pre-line;
        word-break: break-word;
        font-size: 14px;
        color: var(--routine);

        a[href*="http"] {
          position: relative;
          color: var(--theme);
          max-width: 85%;
          overflow: hidden;
          text-overflow: ellipsis;
          white-space: nowrap;

          &::after {
            content: "";
            position: absolute;
            bottom: 0;
            left: 0;
            width: 0;
            height: 1px;
            background: var(--theme);
            transition: all 0.35s;
          }

          &:hover {
            color: var(--theme);

            &::after {
              width: 100%;
            }
          }
        }
      }
    }

    &.qrcode {
      background: var(--background);

      .qrcode_img {
        display: block;
        width: 100%;
        user-select: none;
        margin-bottom: 10px;
        border-radius: 5px;
      }

      .qrcode_description {
        font-size: 14px;
        color: var(--routine);
      }
    }

    &.timelife {
      background: var(--background);

      .item {
        margin-bottom: 15px;

        &:last-child {
          margin-bottom: 0;
        }

        .title {
          font-size: 12px;
          color: var(--minor);
          margin-bottom: 5px;
          display: flex;
          align-items: center;

          .text {
            color: var(--theme);
            font-weight: 500;
            font-size: 14px;
            margin: 0 5px;
          }
        }

        .progress {
          display: flex;
          align-items: center;

          &-bar {
            height: 10px;
            border-radius: 5px;
            overflow: hidden;
            background: var(--classC);
            width: 0;
            min-width: 0;
            flex: 1;
            margin-right: 5px;

            &-inner {
              width: 0;
              height: 100%;
              border-radius: 5px;
              transition: width 0.35s;
              animation: progress 750ms linear infinite;

              &-0 {
                background: #bde6ff;
                background-image: linear-gradient(135deg,
                    #50bfff 25%,
                    transparent 25%,
                    transparent 50%,
                    #50bfff 50%,
                    #50bfff 75%,
                    transparent 75%,
                    transparent 100%);
                background-size: 30px 30px;
              }

              &-1 {
                background: #ffd980;
                background-image: linear-gradient(135deg,
                    #f7ba2a 25%,
                    transparent 25%,
                    transparent 50%,
                    #f7ba2a 50%,
                    #f7ba2a 75%,
                    transparent 75%,
                    transparent 100%);
                background-size: 30px 30px;
              }

              &-2 {
                background: #ffa9a9;
                background-image: linear-gradient(135deg,
                    #ff4949 25%,
                    transparent 25%,
                    transparent 50%,
                    #ff4949 50%,
                    #ff4949 75%,
                    transparent 75%,
                    transparent 100%);
                background-size: 30px 30px;
              }

              &-3 {
                background: #67c23a;
                background-image: linear-gradient(135deg,
                    #4f9e28 25%,
                    transparent 25%,
                    transparent 50%,
                    #4f9e28 50%,
                    #4f9e28 75%,
                    transparent 75%,
                    transparent 100%);
                background-size: 30px 30px;
              }
            }
          }

          &-percentage {
            width: 38px;
            color: var(--minor);
          }
        }
      }
    }

    &.weather {
      background: var(--background);

      .joe_aside__item-contain {
        min-height: 300px;
      }
    }

    &.hot {
      background: var(--background);

      .empty {
        text-align: center;
        color: var(--routine);
      }

      .item {
        margin-bottom: 15px;

        &:last-child {
          margin-bottom: 0;
        }

        &:nth-child(1) .link .sort {
          background: #ff183e;
        }

        &:nth-child(2) .link .sort {
          background: #ff5c38;
        }

        &:nth-child(3) .link .sort {
          background: #ffb821;
        }

        .link {
          position: relative;
          display: block;
          border-radius: var(--radius-inner);
          overflow: hidden;

          &:hover .image {
            transform: scale(1.2);
          }

          .sort {
            position: absolute;
            top: 5px;
            right: -20px;
            background: #7f7f8c;
            color: #fff;
            width: 65px;
            text-align: center;
            font-size: 12px;
            transform: rotate(45deg);
            font-weight: 500;
            z-index: 1;
            font-style: normal;
          }

          .image {
            width: 100%;
            height: 130px;
            object-fit: cover;
            transition: transform 0.35s;
          }

          .describe {
            position: absolute;
            z-index: 1;
            left: 0;
            right: 0;
            bottom: 0;
            padding: 10px;
            background: linear-gradient(to bottom,
                rgba(0, 0, 0, 0),
                rgba(0, 0, 0, 0.75));
            font-size: 12px;
            color: var(--seat);

            h6 {
              white-space: nowrap;
              overflow: hidden;
              text-overflow: ellipsis;
              color: #fff;
              line-height: 24px;
              font-size: 14px;
            }
          }
        }
      }
    }

    &.today {
      background: var(--background);

      .joe_aside__item-contain {
        .item {
          position: relative;

          .tail {
            position: absolute;
            left: 6px;
            top: 0;
            height: 100%;
            border-left: 1px solid var(--classC);
          }

          .head {
            position: absolute;
            width: 13px;
            height: 13px;
            border-radius: 50%;
            background: var(--background);
          }

          .desc {
            position: relative;
            top: -2px;
            padding-left: 24px;
            padding-bottom: 15px;

            time {
              display: block;
              font-weight: 600;
              margin-bottom: 7px;
            }

            a {
              display: block;
              color: var(--routine);
              white-space: nowrap;
              overflow: hidden;
              text-overflow: ellipsis;
              transition: color 0.25s;
              font-size: 13px;

              &:hover {
                color: var(--theme);
              }
            }
          }

          &:nth-child(even) {
            .head {
              border: 1px solid #f48b29;
            }

            .desc {
              color: #f48b29;
            }
          }

          &:nth-child(odd) {
            .head {
              border: 1px solid #f05454;
            }

            .desc {
              color: #f05454;
            }
          }

          &:last-child {
            .desc {
              padding-bottom: 0;
            }
          }
        }
      }
    }

    &.newreply {
      background: var(--background);

      .empty {
        text-align: center;
        color: var(--routine);
      }

      .item {
        margin-bottom: 15px;
        border-bottom: 1px dashed var(--classC);
        padding-bottom: 15px;

        &:last-child {
          margin-bottom: 0;
          padding-bottom: 0;
          border-bottom-color: transparent;
        }

        .user {
          display: flex;
          margin-bottom: 12px;

          .avatar {
            width: 40px;
            height: 40px;
            min-width: 40px;
            min-height: 40px;
            margin-right: 12px;
            border-radius: 50%;
            border: 1px solid var(--classA);
            padding: 3px;
          }

          .info {
            display: flex;
            flex-direction: column;
            justify-content: space-between;

            .author {
              max-width: 150px;
              margin-bottom: 4px;
              overflow: hidden;
              text-overflow: ellipsis;
              white-space: nowrap;
              font-weight: 600;
              color: var(--main);
            }

            .date {
              font-size: 12px;
              color: var(--minor);
            }
          }
        }

        .reply {
          position: relative;
          padding: 5px 10px;
          background: var(--classD);
          border-radius: 6px;

          &::before {
            content: "";
            width: 0;
            height: 0;
            border-bottom: 6px solid var(--classD);
            border-left: 6px solid transparent;
            border-right: 6px solid transparent;
            position: absolute;
            left: 15px;
            bottom: 100%;
          }

          .link {
            display: -webkit-box;
            -webkit-line-clamp: 1;
            /*! autoprefixer: ignore next */
            -webkit-box-orient: vertical;
            overflow: hidden;
            text-overflow: ellipsis;
            word-break: break-word;
            color: var(--minor);
            font-size: 13px;
            font-weight: 500;
            line-height: 24px;
            transition: all 0.35s;
            max-height: 48px;

            &:hover {
              color: var(--theme);
            }

            .owo_image {
              height: 18px;
              vertical-align: -5px;
            }

            a {
              color: var(--theme);
            }
          }
        }
      }
    }

    &.advert {
      display: block;
      min-height: 32px;
      background: var(--background);

      img {
        width: 100%;
        object-fit: cover;
      }

      .icon {
        position: absolute;
        z-index: 1;
        top: 6px;
        right: 6px;
        font-size: 12px;
        background: rgba(0, 0, 0, 0.25);
        padding: 2px 5px;
        border-radius: 2px;
        color: #ebebeb;
        pointer-events: none;
      }
    }

    &.tags-cloud {
      margin-bottom: 15px;
      background: var(--background);

      .text {
        flex: 1;
      }

      .tags_more {
        position: relative;
        top: 2px;
        font-size: 14px;
        font-weight: normal;
        color: var(--minor);

        i {
          margin: 0;
          font-size: 14px;
          font-weight: normal;
          color: var(--minor);
        }

        &:hover {
          color: var(--theme);

          i {
            color: var(--theme);
          }
        }
      }

      .tags-cloud-list {
        font-size: 0;

        a {
          display: inline-block;
          width: 30%;
          margin: 4px;
          padding: 5px;
          font-size: 13px;
          line-height: 1.2;
          color: var(--minor);
          text-decoration: none;
          overflow: hidden;
          -o-text-overflow: ellipsis;
          text-overflow: ellipsis;
          white-space: nowrap;
          text-align: center;
          background: var(--background-tag);
          border: 1px solid var(--classE);
          border-radius: 3px;

          &:hover {
            color: var(--theme);
          }
        }
      }

      .empty {
        text-align: center;
        color: var(--routine);
      }
    }
  }

  .speaker-anim-icon {
    position: relative;
    top: -2px;
    margin-right: 6px;
  }
}

.joe_archive {
  padding: 0 15px;
  background: var(--background);
  border-radius: var(--radius-wrap);
  box-shadow: var(--box-shadow);

  &__title {
    display: flex;
    align-items: center;
    height: 45px;
    color: var(--main);
    line-height: 45px;
    border-bottom: 1px solid var(--classC);

    &-icon {
      margin-right: 5px;
      color: var(--theme);
      font-size: 18px;
      vertical-align: middle;
    }

    &-title {
      display: flex;
      align-items: center;

      .muted {
        position: relative;
        top: -1px;
        margin: 0 5px;
        color: var(--theme);
        font-weight: bold;
      }
    }
  }
}

.joe_list {
  &__item {
    position: relative;
    width: 100%;
    border-bottom: 1px solid var(--classC);
    padding: 15px 0;

    &:last-child {
      border-bottom: none;
    }

    .thumbnail {
      background: var(--classD);
      border-radius: var(--radius-inner);
    }

    .information {
      .title {
        margin-bottom: 10px;
        display: -webkit-box;
        -webkit-line-clamp: 2;
        /*! autoprefixer: ignore next */
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
        word-break: break-word;
        color: var(--main);
        font-size: 18px;
        line-height: 24px;
        max-height: 48px;
        transition: color 0.35s;

        // &:hover {
        //   color: var(--theme);
        // }

        .badge {
          height: 20px;
          padding: 0 6px;
          margin-right: 5px;
          line-height: 20px;
          font-size: 12px;
          white-space: nowrap;
          vertical-align: 2px;
          color: #fff;
          background-image: -webkit-linear-gradient(0deg,
              #3ca5f6 0%,
              #a86af9 100%);
          border-radius: 2px 6px;
        }
      }

      .abstract {
        display: -webkit-box;
        -webkit-line-clamp: 2;
        /*! autoprefixer: ignore next */
        -webkit-box-orient: vertical;
        overflow: hidden;
        text-overflow: ellipsis;
        color: var(--minor);
        word-break: break-word;
        line-height: 22px;
        max-height: 44px;
        opacity: 0.85;
      }
    }

    &::before {
      position: absolute;
      z-index: 1;
      top: 15px;
      left: -15px;
      content: "";
      width: 4px;
      height: 25px;
      border-radius: 2px;
      background: var(--theme);
      transform: scaleY(0);
      transition: transform 0.35s;
    }

    .meta {
      display: flex;
      align-items: center;
      justify-content: space-between;
      margin-top: auto;
      color: var(--minor);
      font-size: 13px;

      .items {
        display: flex;
        align-items: center;
        justify-content: flex-start;
        flex-shrink: 0;

        li {
          .joe-font {
            margin-right: 3px;
            font-size: 15px;
          }

          &::after {
            content: "/";
            color: var(--seat);
            padding: 0 5px;
          }

          &:last-child::after {
            display: none;
          }
        }
      }

      .categories {
        display: flex;
        justify-content: space-between;
        align-items: center;
        max-width: 320px;
        white-space: nowrap;
        overflow-x: auto;

        &::-webkit-scrollbar {
          height: 4px;
        }

        .pcate {
          margin-left: 5px;
          display: flex;
          align-items: center;

          .icon {
            margin-right: 3px;
          }

          .link {
            color: var(--minor);

            &:hover {
              color: var(--theme);
            }
          }
        }
      }
    }

    &:hover {
      .title {
        color: var(--theme);
      }

      &::before {
        transform: scaleY(1);
      }
    }

    &.default {
      display: flex;
      position: relative;

      &:hover {
        .thumbnail {
          img {
            opacity: 0.8;
          }

          time {
            transform: translate3d(0, 0, 0);
          }
        }
      }

      .thumbnail {
        flex-shrink: 0;
        position: relative;
        width: 210px;
        height: 140px;
        margin-right: 15px;
        overflow: hidden;

        img {
          box-sizing: border-box;
          width: 100%;
          height: 100%;
          object-fit: cover;
          border: 1px solid var(--classD);
          border-radius: var(--radius-inner);
          transition: opacity 0.35s;
        }

        time {
          position: absolute;
          z-index: 1;
          top: 5px;
          right: 5px;
          background: var(--theme);
          height: 20px;
          line-height: 20px;
          padding: 0 8px;
          color: #fff;
          font-size: 12px;
          border-radius: 10px;
          transition: transform 0.35s;
          transform: translate3d(120%, 0, 0);
        }

        .joe-font {
          position: absolute;
          z-index: 1;
          top: 3px;
          left: 5px;
          font-size: 18px;
          color: #f5f5f5;
        }
      }

      .information {
        display: flex;
        flex-direction: column;
        flex: 1;
        min-width: 0;
      }
    }

    &.single {
      &:hover {
        .thumbnail {
          img {
            opacity: 0.8;
          }

          time {
            transform: translate3d(0, 0, 0);
          }
        }
      }

      .information {
        margin-bottom: 15px;
      }

      .thumbnail {
        display: block;
        position: relative;
        width: 100%;
        height: 280px;
        overflow: hidden;
        margin-bottom: 15px;

        img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          border-radius: var(--radius-inner);
          transition: opacity 0.35s;
        }

        time {
          position: absolute;
          z-index: 1;
          top: 10px;
          right: 10px;
          background: var(--theme);
          height: 20px;
          line-height: 20px;
          padding: 0 8px;
          color: #fff;
          font-size: 12px;
          border-radius: 10px;
          transition: transform 0.35s;
          transform: translate3d(120%, 0, 0);
        }
      }
    }

    &.multiple {
      .information {
        margin-bottom: 15px;
      }

      .thumbnail {
        display: grid;
        grid-template-columns: repeat(3, 1fr);
        grid-template-rows: 180px;
        gap: 15px;
        margin-bottom: 15px;

        img {
          width: 100%;
          height: 100%;
          object-fit: cover;
          transition: transform 0.35s, opacity 0.35s;
          border-radius: var(--radius-inner);

          &:hover {
            transform: scale(1.025);
            opacity: 0.85;
          }
        }
      }
    }

    &.none {
      .information {
        display: flex;
        flex-direction: column;
        height: 140px;
      }
    }
  }

  &__loading {
    .item {
      display: flex;
      position: relative;
      width: 100%;
      padding: 15px 0;
      border-bottom: 1px solid var(--classC);

      &:last-child {
        border-bottom: none;
      }

      .thumbnail {
        flex-shrink: 0;
        position: relative;
        width: 210px;
        height: 140px;
        margin-right: 15px;
        background: var(--classD);
        animation: list_thumbnail_loading 0.5s infinite alternate;
        border-radius: var(--radius-inner);
      }

      .information {
        flex: 1;
        min-width: 0;

        .title {
          height: 24px;
          border-radius: var(--radius-inner);
          background: var(--classD);
          animation: list_title_loading 0.75s infinite alternate;
          margin-bottom: 15px;
        }

        .abstract {
          p {
            height: 18px;
            border-radius: var(--radius-inner);
            background: var(--classD);
            margin-bottom: 5px;
            animation: list_abstract_loading 0.8s infinite alternate;
          }
        }
      }
    }
  }
}

.joe_progress_bar {
  position: fixed;
  z-index: 80;
  width: 0;
  height: 4px;
  bottom: 0;
  left: 0;
  background: linear-gradient(45deg, #3884d9 50%, #40d968);
}

.joe_loading {
  padding: 40px;
  text-align: center;

  svg,
  img {
    width: 40px;
  }
}

.joe_load {
  position: relative;
  z-index: 1;
  margin: 15px auto 0;
  width: 120px;
  height: 32px;
  line-height: 32px;
  text-align: center;
  border-radius: 16px;
  cursor: pointer;
  user-select: none;
  background: var(--background);
  color: var(--routine);
  transition: transform 0.25s;
  box-shadow: var(--box-shadow);

  &:active {
    transform: scale(0.75);
  }

  &:hover {
    color: var(--theme);
  }
}

.joe_empty {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-direction: column;
  padding: 50px 0;
  color: var(--routine);

  &-icon {
    width: 90px;
    height: 90px;
    margin-bottom: 20px;
    fill: var(--routine);
  }

  &.mini {
    padding: 20px 0;
  }

  &.hide {
    display: none;
  }
}

.joe_alert {
  padding: 12px;
  border-radius: var(--radius-inner);
  line-height: 26px;

  &.info {
    border: 1px solid #abdcff;
  }

  &.success {
    border: 1px solid #8ce6b0;
  }

  &.warning {
    border: 1px solid #ffd77a;
  }

  &.error {
    border: 1px solid #ffb08f;
  }

  *:last-child {
    margin-bottom: 0 !important;
  }
}

.joe_gird {
  display: grid;

  &__item {
    *:last-child {
      margin-bottom: 0 !important;
    }
  }
}

.joe_checkbox {
  -webkit-appearance: none;
  position: relative;
  border-radius: 2px;
  width: 15px;
  height: 15px;
  border: 2px solid var(--theme);
  vertical-align: -2px;

  &:disabled {
    cursor: not-allowed;
  }

  &:checked {
    border: none;
    background: var(--theme);

    &::after {
      content: "";
      width: 3px;
      height: 7px;
      position: absolute;
      top: 2px;
      left: 5px;
      border: 2px solid #fff;
      border-top: 0;
      border-left: 0;
      transform: rotate(45deg);
    }
  }
}

.joe_mtitle {
  display: flex;
  justify-content: center;

  &__text {
    position: relative;
    color: var(--minor);
    padding: 0 12px;
    transition: padding 0.35s;

    &:hover {
      padding: 0;
    }

    &::before,
    &::after {
      content: "";
      position: absolute;
      top: 50%;
      width: 20px;
      height: 1px;
      background: var(--theme);
    }

    &::before {
      left: -35px;
    }

    &::after {
      right: -35px;
    }
  }
}

.joe_abtn {
  display: inline-block;
  color: #fff;
  height: 35px;
  line-height: 35px;
  padding: 0 15px;
  transform-origin: 100% 0;
  transform: translateZ(0);
  border-radius: 3px;

  &:hover {
    animation-name: wobble-bottom;
    animation-duration: 1s;
    animation-timing-function: ease-in-out;
    animation-iteration-count: 1;
  }

  &__icon {
    display: inline-block;
    vertical-align: top;
    text-align: center;

    .fa {
      color: #fff;
    }

    [class^="fa-"] {
      margin-right: 4px;
    }
  }

  &__content {
    color: #fff;
    display: inline-block;
    vertical-align: top;
    max-width: 200px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }
}

.joe_anote {
  position: relative;
  display: inline-block;
  color: #fff;
  height: 35px;
  line-height: 35px;
  transform: translateZ(0);
  transition: transform 0.35s;
  border-radius: 3px;

  &:hover {
    transform: translateY(-3px);
  }

  &__icon {
    display: inline-block;
    vertical-align: top;
    width: 35px;
    height: 35px;
    text-align: center;
    background: rgba(0, 0, 0, 0.2);

    .fa {
      color: #fff;
    }
  }

  &__content {
    color: #fff;
    display: inline-block;
    vertical-align: top;
    padding: 0 12px 0 6px;
    max-width: 200px;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  &.secondary {
    background: #34495e;
  }

  &.success {
    background: #27ae60;
  }

  &.warning {
    background: #f39c12;
  }

  &.error {
    background: #e74c3c;
  }

  &.info {
    background: #3498db;
  }
}

.joe_dotted {
  display: block;
  width: 100%;
  height: 2px;
  background-size: 80px;
}

.joe_hide {
  position: relative;
  display: block;
  padding: 30px 0;
  text-align: center;
  user-select: none;
  line-height: normal;
  background: repeating-linear-gradient(145deg,
      var(--classD),
      var(--classD) 15px,
      var(--background) 0,
      var(--background) 25px);

  &__button {
    position: relative;
    font-style: normal;
    cursor: pointer;
    color: var(--theme);
  }
}

.joe_card__default {
  margin: 0 auto;
  box-shadow: 0 2px 12px 0 rgba(0, 0, 0, 0.1);
  border-radius: var(--radius-inner);
  border: 1px solid var(--classC);
  background: var(--background);
  line-height: 26px;

  &-title {
    padding: 8px 12px;
    border-bottom: 1px solid var(--classC);
    color: var(--main);
    user-select: none;
  }

  &-content {
    padding: 12px;
    color: var(--routine);

    *:last-child {
      margin-bottom: 0 !important;
    }
  }
}

.joe_message {
  display: block;
  position: relative;
  border-left-width: 4px;
  border-left-style: solid;
  padding: 8px 15px;
  border-radius: 0 4px 4px 0;
  line-height: 26px;

  &:hover {
    .joe_message__icon {
      transform: rotate(360deg);
    }
  }

  &__icon {
    position: absolute;
    top: -9px;
    left: -11px;
    width: 18px;
    height: 18px;
    border-radius: 50%;
    transition: transform 0.85s;

    &::before {
      content: "";
      position: absolute;
      top: 50%;
      left: 50%;
      transform: translate(-50%, -50%);
      width: 10px;
      height: 10px;
      fill: #fff;
      background-repeat: no-repeat;
      background-size: 100% 100%;
    }
  }

  &.success {
    border-left-color: #2bde3f;
    background: #2bde3f20;
    color: #2bde3f;

    .joe_message__icon {
      background: #2bde3f;

      &::before {
        background-image: url();
      }
    }
  }

  &.info {
    border-left-color: #1d72f3;
    background: #1d72f320;
    color: #1d72f3;

    .joe_message__icon {
      background: #1d72f3;

      &::before {
        background-image: url();
      }
    }
  }

  &.warning {
    border-left-color: #ffc007;
    background: #ffc00720;
    color: #ffc007;

    .joe_message__icon {
      background: #ffc007;

      &::before {
        background-image: url();
      }
    }
  }

  &.error {
    border-left-color: #f56c6c;
    background: #f56c6c20;
    color: #f56c6c;

    .joe_message__icon {
      background: #f56c6c;

      &::before {
        background-image: url();
      }
    }
  }

  &__content {
    display: block;
  }
}

.joe_progress {
  width: 100%;
  display: flex;
  align-items: center;

  &__strip {
    height: 12px;
    border-radius: 6px;
    overflow: hidden;
    background: var(--classC);
    min-width: 0;
    flex: 1;
    margin-right: 10px;

    &-percent {
      position: relative;
      height: 100%;
      border-radius: 6px;
      transition: width 0.35s;

      &::before {
        content: "";
        opacity: 0;
        position: absolute;
        top: 0;
        left: 0;
        right: 0;
        bottom: 0;
        background: #fff;
        border-radius: 6px;
        animation: progress-active 3s ease-in-out infinite;
      }
    }
  }

  &__percentage {
    color: var(--minor);
  }
}

.joe_callout {
  padding: 12px;
  border: 1px solid var(--classB);
  border-left-width: 4px;
  border-radius: var(--radius-inner);
  color: var(--routine);
  line-height: 26px;

  *:last-child {
    margin-bottom: 0 !important;
  }
}

.joe_card__list {
  border: 1px solid var(--classC);
  border-radius: var(--radius-inner);
  overflow: hidden;
  line-height: 26px;

  &-item {
    padding: 12px;
    border-bottom: 1px solid var(--classC);

    &:last-child {
      border-bottom: none;
    }

    *:last-child {
      margin-bottom: 0 !important;
    }
  }
}

.joe_timeline {
  line-height: 26px;

  &__item {
    position: relative;
    padding-bottom: 15px;

    &-tail {
      position: absolute;
      top: 0;
      left: 6px;
      height: 100%;
      border-left: 1px solid var(--classC);
    }

    &-circle {
      position: absolute;
      width: 13px;
      height: 13px;
      background-color: var(--background);
      border-radius: 50%;
      border: 1px solid #19be6b;
    }

    &-content {
      padding-left: 24px;
      position: relative;
      top: -5px;

      *:last-child {
        margin-bottom: 0 !important;
      }
    }

    &:last-child {
      padding-bottom: 0;

      .joe_timeline__item-tail {
        display: none;
      }
    }
  }
}

.joe_tabs {
  width: 100%;
  overflow: hidden;
  background: var(--background);
  box-shadow: 0 2px 6px rgba(0, 0, 0, 0.1);
  border: 1px solid var(--classC);
  border-radius: var(--radius-inner);
  line-height: 26px;

  &__head {
    width: 100%;
    overflow-x: auto;
    overflow-y: hidden;
    display: flex;
    background: var(--classD);

    &-item {
      position: relative;
      padding: 0 15px;
      line-height: 40px;
      height: 40px;
      color: var(--minor);
      cursor: pointer;
      transition: color 0.5s;
      white-space: nowrap;
      font-size: 14px;

      &::after {
        content: "";
        position: absolute;
        background: var(--theme);
        bottom: 0;
        left: 15px;
        right: 15px;
        height: 2px;
        opacity: 0;
        border-radius: 2px;
        transform: scaleX(0.5);
        transition: opacity 0.25s, transform 0.25s;
      }

      &.active {
        color: var(--theme);

        &::after {
          opacity: 1;
          transform: scaleX(1);
        }
      }
    }
  }

  &__body {
    &-item {
      padding: 15px;

      *:last-child {
        margin-bottom: 0 !important;
      }
    }
  }
}

.joe_vplayer {
  width: 100%;
  height: 500px;
  border-radius: var(--radius-img);
  box-shadow: var(--box-shadow);
}

.joe_pdf {
  iframe {
    display: block;
    width: 100%;
    height: 500px;
    margin: 0 auto;
    overflow: hidden;
    border: none;
    border-radius: var(--radius-img);
    box-shadow: var(--box-shadow);
  }
}

.joe_card__describe {
  position: relative;
  border: 1px dashed var(--classA);
  line-height: 26px;

  &-title {
    position: absolute;
    top: 0;
    left: 8px;
    transform: translateY(-50%);
    background: var(--background);
    padding: 0 5px;
    color: var(--main);
    font-weight: 500;
    max-width: 200px;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
  }

  &-content {
    color: var(--routine);
    padding: 18px 15px 15px;

    *:last-child {
      margin-bottom: 0 !important;
    }
  }
}

.joe_lamp {
  display: block;
  position: relative;
  width: 100%;
  height: 3px;
  border-radius: 1.5px;
  overflow: hidden;
  animation: lamp-background linear 4s infinite;

  &::before,
  &::after {
    content: "";
    position: absolute;
    width: 100%;
    height: 100%;
    top: 0;
    z-index: 1;
    animation: lamp-front linear 4s infinite;
  }

  &::before {
    right: 50%;
    transform-origin: right;
  }

  &::after {
    left: 50%;
    transform-origin: left;
  }
}

.joe_collapse {
  line-height: 26px;

  &__item {
    margin-bottom: 10px;
    color: var(--routine);
    border: 1px solid var(--classC);

    &-head {
      display: flex;
      align-items: center;
      background: var(--classD);
      padding: 10px 12px;
      padding-right: 8px;
      cursor: pointer;
      overflow: hidden;
      user-select: none;

      &--label {
        padding-right: 8px;
      }

      &--icon {
        flex-shrink: 0;
        margin-left: auto;
        fill: var(--minor);
        transition: transform 0.3s ease;
      }
    }

    &-wrapper {
      max-height: 0;
      overflow: hidden;
      transition: max-height 0.3s ease;

      &--content {
        padding: 12px;

        *:last-child {
          margin-bottom: 0 !important;
        }
      }
    }

    &:last-child {
      margin-bottom: 0;
    }

    &.active {
      .joe_collapse__item-head--icon {
        transform: rotate(-180deg);
      }
    }
  }
}

.joe_cloud {
  display: flex;
  align-items: center;
  padding: 10px;
  border: 1px solid var(--classC);
  border-radius: var(--radius-inner);
  overflow: hidden;

  &__logo {
    flex-shrink: 0;
    width: 32px;
    height: 32px;
    margin-right: 10px;
    background-size: 100% 100%;

    &._default {
      background-image: url("");
    }

    &._360 {
      background-image: url("");
    }

    &._bd {
      background-image: url("");
    }

    &._ty {
      background-image: url("");
    }

    &._ct {
      background-image: url("");
    }

    &._wy {
      background-image: url("");
    }

    &._github {
      background-image: url("");
    }

    &._lz {
      background-image: url("");
    }
  }

  &__describe {
    line-height: normal;
    flex: 1;
    overflow: hidden;

    &-title {
      color: var(--theme);
      font-size: 14px;
      margin-bottom: 3px;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
    }

    &-type {
      font-size: 12px;
      overflow: hidden;
      white-space: nowrap;
      text-overflow: ellipsis;
    }
  }

  &__btn {
    flex-shrink: 0;
    margin-left: auto;
    background: var(--theme);
    color: #fff;
    width: 30px;
    height: 30px;
    line-height: 30px;
    border-radius: 50%;
    text-align: center;
  }
}

.joe_detail {
  position: relative;
  margin-bottom: 15px;
  padding: 20px;
  background: var(--background);
  border-radius: var(--radius-wrap);
  box-shadow: var(--box-shadow);

  .post-status {
    position: absolute;
    left: 12px;
    top: 12px;
    padding: 0 8px;
    height: 26px;
    line-height: 26px;
    user-select: none;
    background: var(--classD);
    border-radius: 4px;

    i {
      margin-right: 3px;
      vertical-align: middle;
      font-size: 16px;
    }

    &.s_draft {
      color: #7a5001;
      background: #fdd9a9;
    }

    &.s_intimate {
      color: #ef44b9;
      background: var(--classJ);
    }

    &.s_recycle {
      color: #c50a00;
    }
  }

  &__category {
    display: flex;
    align-items: center;
    margin-bottom: 15px;

    .item {
      color: #fff;
      font-size: 12px;
      padding: 3px 8px;
      margin-right: 5px;
      border-radius: 2px;
      white-space: nowrap;
      overflow: hidden;
      text-overflow: ellipsis;
      max-width: 120px;
      transition: transform 0.35s, opacity 0.35s;

      &:hover {
        opacity: 0.85;
        transform: translate3d(0, -3px, 0);
      }

      &:last-child {
        margin-right: 0;
      }

      &-0 {
        background: #0396ff;
      }

      &-1 {
        background: #ea5455;
      }

      &-2 {
        background: #7367f0;
      }

      &-3 {
        background: #28c76f;
      }

      &-4 {
        background: #9f44d3;
      }
    }

    .edit {
      color: var(--minor);
      margin-left: auto;

      &:hover {
        color: var(--theme);
      }
    }
  }

  &__title {
    font-size: 24px;
    color: var(--classF);
    text-align: center;
    padding-top: 40px;
    margin-bottom: 15px;
    word-break: break-word;

    &.txt-shadow {
      text-shadow: var(--text-shadow);
    }
  }

  &__count {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding-bottom: 15px;
    margin-bottom: 10px;
    border-bottom: 1px solid var(--classC);

    &::after {
      content: "";
      position: absolute;
      bottom: -1.5px;
      left: 0;
      width: 80px;
      height: 3px;
      border-radius: 1.5px;
      background: var(--theme);
    }

    &-information {
      display: flex;
      align-items: center;

      .avatar {
        width: 35px;
        height: 35px;
        border-radius: 50%;
        margin-right: 10px;
        padding: 3px;
        object-fit: cover;
        background: var(--classC);
        border: 1px solid var(--classA);
      }

      .meta {
        display: flex;
        flex-direction: column;
        height: 35px;
        justify-content: space-between;
        font-size: 12px;

        .author {
          .link {
            font-weight: 500;
            color: var(--theme);

            &:hover {
              text-decoration: underline;
            }
          }
        }

        .item {
          display: flex;
          align-items: center;
          color: var(--minor);
          line-height: 16px;

          .line {
            color: var(--seat);
            margin: 0 5px;
            vertical-align: middle;
          }
        }
      }
    }

    &-created {
      font-size: 32px;
      line-height: 42px;
      color: var(--routine);
      user-select: none;
      text-shadow: var(--text-shadow);
    }
  }

  &__overdue {
    padding-top: 5px;

    &-wrapper {
      padding: 15px;
      color: #db7c22;
      border: 1px solid var(--overdue-border);
      background: var(--overdue-background);
      border-radius: var(--radius-inner);
      animation: overdue 1.5s ease-in-out;

      .title {
        display: flex;
        align-items: center;
        margin-bottom: 10px;
        font-size: 15px;
        font-weight: 500;

        .icon {
          width: 20px;
          height: 20px;
          margin-right: 8px;
        }
      }

      .content {
        padding-left: 28px;
      }

      &:hover {
        clip-path: circle(75%);
      }
    }
  }

  &__article {
    padding: 10px 0;
    font-size: 15px;
    word-break: break-word;
    color: var(--routine);

    &.uncopy {
      user-select: none !important;

      code:not([class]) {
        user-select: none !important;
      }

      .code-toolbar {
        pre[class*="language-"] {
          user-select: none !important;

          code {
            user-select: none !important;
          }
        }
      }
    }

    &.indent {
      >p {
        text-indent: 2em;

        &>img {
          margin-left: -2em;
        }
      }
    }

    &.center-img {
      span[data-fancybox] {
        text-align: center;
      }
    }

    &.right-img {
      span[data-fancybox] {
        text-align: right;
      }
    }

    &.single_code_select {
      code:not([class]) {
        user-select: all;
      }
    }

    h1,
    h2,
    h3,
    h4,
    h5,
    h6 {
      color: var(--main);
      line-height: 24px;
      margin-bottom: 18px;
      position: relative;
    }

    h1 {
      margin: 40px 0 20px 0;

      &::before {
        position: relative;
        display: inline-block;
        vertical-align: middle;
        content: "¶";
        top: -4px;
        margin-right: 12px;
        font-size: 24px;
        color: var(--theme);
      }
    }

    h2 {
      margin: 40px 0 20px 0;
      font-size: 1.4em;

      &::before {
        position: relative;
        display: inline-block;
        vertical-align: middle;
        content: "";
        top: -2px;
        left: 0;
        width: 20px;
        height: 20px;
        margin-right: 6px;
        background-position: center;
        background-repeat: none;
        background-size: auto 100%;
        background-image: url("");
      }
    }

    h3 {
      margin: 30px 0 18px 0;
      font-size: 1.3em;

      &::before {
        position: relative;
        display: inline-block;
        vertical-align: middle;
        content: "";
        top: -3px;
        left: 0;
        width: 20px;
        height: 20px;
        margin-right: 8px;
        background-position: center;
        background-repeat: none;
        background-size: auto 100%;
        background-image: url("");
      }
    }

    h4 {
      font-size: 1.18em;

      &::before {
        position: relative;
        display: inline-block;
        vertical-align: middle;
        content: "";
        top: -2px;
        width: 22px;
        height: 22px;
        margin-right: 6px;
        color: var(--theme);
        background-position: center;
        background-repeat: none;
        background-size: auto 100%;
        background-image: url("");

      }
    }

    h5 {
      font-size: 1em;

      &::before {
        position: relative;
        display: inline-block;
        vertical-align: middle;
        content: "";
        top: -1px;
        left: 0;
        width: 18px;
        height: 18px;
        margin-right: 6px;
        background-position: center;
        background-repeat: none;
        background-size: 100% 100%;
        background-image: url("");
      }
    }

    h6 {
      font-size: 1em;

      &::before {
        position: relative;
        display: inline-block;
        vertical-align: middle;
        content: "";
        top: -1px;
        left: 0;
        width: 16px;
        height: 16px;
        margin-right: 6px;
        background-position: center;
        background-repeat: none;
        background-size: auto 100%;
        background-image: url("");
      }
    }

    hr {
      border: none;
      height: 1px;
      background-color: var(--classB);
      margin-bottom: 18px;
    }

    p {
      line-height: 26px;
      margin-bottom: 18px;
    }

    blockquote {
      line-height: 26px;
      margin-bottom: 18px;
      padding: 8px 15px;
      color: var(--routine);
      background: var(--classD);
      border-left: 5px solid var(--quote);
      border-radius: var(--radius-inner);

      p {
        margin: 0;
      }
    }

    a:not([class]) {
      display: inline-block;
      line-height: 26px;
      text-indent: 0;
      color: var(--theme);
      position: relative;

      &:hover::after {
        opacity: 1;
        transform: scaleX(1);
      }

      &::after {
        position: absolute;
        bottom: -1px;
        left: 0;
        content: "";
        width: 100%;
        height: 1px;
        background: var(--theme);
        transform: scaleX(0.25);
        opacity: 0;
        transition: transform 0.35s, opacity 0.35s;
      }
    }

    span[data-fancybox] {
      display: block;
      text-align: left;
    }

    img {
      display: inline-block;
      max-width: var(--img-max-width) !important;
      cursor: zoom-in;
      margin: 5px 0;
      border-radius: var(--radius-img);
      transition: transform 0.35s, box-shadow 0.35s;

      &:hover {
        transform: translateY(-5px);
        box-shadow: 0 34px 20px -24px rgba(136, 161, 206, 0.3);
      }
    }

    >iframe {
      display: block;
      margin: 0 auto;
      min-width: 700px;
      min-height: 500px;
      max-width: 100%;
      overflow: hidden;
      border: none;
      border-radius: var(--radius-img);
    }

    video {
      display: block;
      margin: 0 auto;
      min-width: 700px;
      max-width: 100% !important;
      overflow: hidden;
      border-radius: var(--radius-img);
    }

    .mermaid {
      margin: 10px 0;
      padding: 10px;
      background: #f9f9f9;
      border-radius: var(--radius-inner);

      svg {
        display: block;
        margin: 0 auto;
      }
    }

    .owo_image {
      max-height: 26px;
      vertical-align: top;
    }

    .indent {
      text-indent: 2em
    }

    ol,
    ul {
      margin-bottom: 18px;
      padding-left: 36px;

      li {
        line-height: 26px;

        &.task-list-item {
          margin-left: -16px;
          list-style: none;

          input {
            position: relative;
            top: 1px;
          }
        }
      }
    }

    ol li {
      list-style: decimal;
    }

    ul li {
      list-style: disc;
    }

    table {
      width: 100%;
      max-width: 100%;
      table-layout: fixed;
      border-collapse: unset;
      color: var(--routine);
      margin-bottom: 18px;
      overflow: hidden;
      font-size: 13px;
      border: 1px solid var(--classE);
      border-radius: 4px;

      td,
      th {
        padding: 8px;
        border-right: 1px solid var(--classE);
        border-bottom: 1px solid var(--classE);
      }

      thead {
        th {
          font-weight: 500;
          background: var(--classC);

          &:last-child {
            border-right: none;
          }
        }
      }

      tbody {
        tr {
          transition: background 0.35s;

          &:last-child td {
            border-bottom: none;
          }

          &:hover {
            background: var(--classD);
          }

          td:last-child {
            border-right: none;
          }
        }
      }
    }

    &-video {
      margin-bottom: 18px;

      .play,
      .episodes {
        position: relative;
        background: var(--classD);
        padding: 60px 15px 15px;

        .title {
          position: absolute;
          top: 15px;
          left: -10px;
          background: var(--theme);
          color: #fff;
          font-weight: 500;
          box-shadow: 2px 5px 10px rgba(49, 58, 70, 0.15);
          height: 30px;
          line-height: 30px;
          padding: 0 12px;
          border-radius: 2px 2px 2px 0;
          user-select: none;

          &::after {
            content: "";
            position: absolute;
            bottom: -10px;
            left: -10px;
            border-style: solid;
            border-width: 10px;
            border-color: var(--theme) transparent transparent;
            transform: rotate(90deg);
          }
        }

        .box {
          border-top: 1px solid var(--classB);
          padding-top: 15px;
        }
      }

      .play {
        margin-bottom: 15px;

        .box {
          iframe {
            width: 100%;
            height: 500px;
            background: #000;
            border-radius: var(--radius-img);
          }
        }
      }

      .episodes {
        .box {
          display: grid;
          grid-template-columns: repeat(6, 1fr);
          gap: 15px;

          .item {
            height: 30px;
            line-height: 30px;
            border-radius: 15px;
            background: var(--background);
            color: var(--routine);
            cursor: pointer;
            text-align: center;
            font-size: 12px;
            white-space: nowrap;
            overflow: hidden;
            text-overflow: ellipsis;
            transition: transform 0.35s, box-shadow 0.35s, background 0.35s,
              color 0.35s;
            padding: 0 10px;

            &.active {
              transform: translateY(-2px);
              color: #fff;
              background: var(--theme);
              box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1);
            }

            &:hover {
              transform: translateY(-2px);
              box-shadow: 0 5px 5px rgba(0, 0, 0, 0.1);
            }
          }
        }
      }
    }

    &-protected {
      display: flex;
      justify-content: center;
      background: repeating-linear-gradient(145deg,
          var(--classB),
          var(--classB) 15px,
          var(--background) 0,
          var(--background) 30px);
      padding: 20px 0;
      margin-bottom: 18px;

      .contain {
        position: relative;
        overflow: hidden;
        border-radius: 20px;
        box-shadow: var(--box-shadow);

        .icon {
          position: absolute;
          top: 50%;
          transform: translateY(-50%);
          left: 15px;
        }

        .password {
          width: 250px;
          height: 40px;
          border: none;
          color: var(--routine);
          padding-left: 50px;
          background: var(--background);
        }

        .submit {
          position: absolute;
          top: 50%;
          right: 15px;
          transform: translateY(-50%);
          color: var(--main);
          border: none;
          background: none;
        }
      }
    }
  }

  &__agree {
    display: none;
    align-items: center;
    justify-content: center;
    margin: 30px 0 10px;

    .agree {
      text-align: center;
      font-size: 12px;
      color: var(--minor);
      user-select: none;

      .icon {
        cursor: pointer;
        position: relative;
        display: flex;
        align-items: center;
        justify-content: center;
        width: 42px;
        height: 42px;
        margin-bottom: 8px;
        background: #f56c6c;
        border-radius: 50%;

        &.active {
          animation: box_shadow 1s;
          box-shadow: 0 0 0 20px rgba(255, 255, 255, 0);
        }

        .joe-font {
          position: absolute;
          opacity: 0;
          font-size: 26px;
          color: #fff;
          transform: scale(0);
          transition: transform 0.85s, opacity 0.85s;

          &.active {
            transform: scale(1);
            opacity: 1;
          }
        }

        .icon-like {
          border-radius: 50%;

          &:hover {
            animation: box_shadow 1s infinite;
            box-shadow: 0 0 0 20px rgba(255, 255, 255, 0);
          }
        }
      }
    }
  }

  &__operate {
    display: flex;
    align-items: center;
    margin-bottom: 15px;
    padding-top: 20px;
    color: var(--routine);

    &-tags {
      display: flex;
      flex: 1;
      align-items: center;
      overflow-x: auto;
      margin-right: 5px;

      &::-webkit-scrollbar {
        display: none;
      }

      a {
        flex-shrink: 0;
        position: relative;
        margin-right: 10px;
        font-size: 12px;
        background-color: var(--classD);
        color: var(--minor);
        border: 1px solid var(--classD);
        padding-right: 8px;
        padding-left: 29px;
        height: 26px;
        line-height: 26px;
        border-radius: 13px;
        max-width: 125px;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        transition: border 0.25s, color 0.25s;

        &:hover {
          color: var(--routine);
          border: 1px solid var(--classC);
        }

        &:last-child,
        &:nth-child(5) {
          margin-right: 0;
        }

        &:nth-child(n + 6) {
          display: none;
        }

        &::before {
          content: "";
          position: absolute;
          top: 0;
          left: 0;
          width: 24px;
          height: 24px;
          background: var(--background);
          border-radius: 50%;
        }

        &::after {
          content: "";
          position: absolute;
          top: 50%;
          left: 12px;
          transform: translate(-50%, -50%);
          width: 12px;
          height: 12px;
          background: url() no-repeat;
          background-size: 100% 100%;
        }
      }
    }

    &-share {
      display: none;
      position: relative;
      top: 1px;
      z-index: 10;
      width: 30px;
      height: 30px;
      margin-right: 6px;
      overflow: hidden;
      border-radius: 30px;
      transition: all 0.25s;

      .joe-icon-share {
        cursor: pointer;
        position: relative;
        z-index: 3;
        display: block;
        width: 28px;
        height: 28px;
        font-size: 18px;
        line-height: 28px;
        font-weight: bold;
        text-align: center;
        color: #fff;
        background: #9999ff;
        border-radius: 50%;
        transition: transform 0.35s;
      }

      .share-icon-list {
        pointer-events: none;
        opacity: 0;
        transform-origin: right center;
        transform: scale(0);
        position: absolute;
        z-index: 1;
        right: 0;
        top: -5px;
        display: flex;
        align-items: center;
        padding: 4px 40px 4px 0;
        background: var(--classD);
        border-radius: 50px;
        transition: all 0.2s;

        a {
          position: relative;
          display: inline-block;
          margin: 0 3px;
        }
      }

      .qrcode_wrapper {
        display: none;
        position: absolute;
        top: -199px;
        left: -68px;
        padding: 10px;
        background: #fff;
        border-radius: 5px;
        box-shadow: var(--block-shadow);

        &:after {
          position: absolute;
          content: "";
          width: 0;
          height: 0;
          margin: 10px 0 0 62px;
          border: 10px solid transparent;
          border-top-color: #e0e0e0;
        }

        p {
          padding: 6px 0 0;
          text-align: center;
          font-size: 12px;
          color: #666;
        }
      }

      &:hover {
        width: auto;
        overflow: initial;
        background: var(--classD);

        .joe-icon-share {
          transform: rotate(360deg) scale(1.25);
          box-shadow: 0 0px 1px 1px #c3c3c3;
        }

        .share-icon-list {
          pointer-events: initial;
          opacity: 1;
          transform: scale(1);
        }
      }

      #share_to_weixin:hover .qrcode_wrapper {
        display: block;
      }
    }
  }

  .joe_donate {
    display: none;
    position: relative;
    z-index: 10;
    width: 30px;
    height: 30px;
    font-size: 30px;
    margin-left: 5px;
    text-align: center;

    .joe-font {
      cursor: pointer;
      display: block;
      width: 30px;
      height: 30px;
      font-size: 30px;
      color: #f16520;
      border-radius: 50%;
    }

    .joe_donate_list {
      pointer-events: none;
      opacity: 0;
      transform: translateY(10px);
      position: absolute;
      top: -240px;
      right: 0;
      display: flex;
      padding: 12px;
      border-radius: 5px;
      background: var(--sub-background);
      box-shadow: var(--block-shadow);
      transition: all 0.25s;

      &:before {
        position: absolute;
        content: "";
        width: 0;
        height: 0;
        bottom: -20px;
        right: 4px;
        border: 10px solid transparent;
        border-top-color: var(--classG);
      }

      li {
        float: left;

        img {
          display: block;
          width: 200px;
          max-width: unset;
          border-radius: 5px;
        }
      }

      &.two {
        li {
          &:first-child img {
            border-radius: 5px 0 0 5px;
          }

          &:last-child img {
            border-radius: 0 5px 5px 0;
          }
        }
      }
    }

    &:hover {
      .joe-font {
        animation: dong ease 0.5s 0.2s infinite alternate;
      }

      .joe_donate_list {
        pointer-events: initial;
        opacity: 1;
        transform: translateY(0);
      }
    }
  }

  &__copyright {
    padding-top: 15px;
    border-top: 1px solid var(--classC);

    .content {
      background: var(--classD);
      padding: 15px;
      border-radius: var(--radius-inner);

      .item {
        color: var(--minor);
        margin-bottom: 5px;
        word-break: break-word;
        line-height: 22px;

        &:last-child {
          margin-bottom: 0;
        }

        .icon {
          width: 18px;
          height: 18px;
          margin-right: 3px;
          vertical-align: -4px;
        }

        .link {
          word-break: break-all;
          color: var(--minor);

          &:hover {
            color: var(--theme);
          }
        }
      }
    }
  }

  &__related {
    padding-top: 15px;

    &-title {
      position: relative;
      font-size: 18px;
      font-weight: 500;
      color: var(--main);
      padding-left: 15px;
      margin-bottom: 15px;

      &::before {
        content: "";
        position: absolute;
        top: 0;
        bottom: 0;
        left: 0;
        width: 4px;
        border-radius: 2px;
        background: var(--theme);
      }
    }

    &-content {
      display: grid;
      gap: 15px;
      grid-template-columns: repeat(4, 1fr);

      .item {
        overflow: hidden;
        border-radius: var(--radius-inner);
        transition: transform 0.25s, box-shadow 0.25s;

        &:hover {
          transform: translateY(-5px);
          box-shadow: 0 34px 20px -24px rgba(136, 161, 206, 0.3);
        }

        img {
          width: 100%;
          height: 120px;
          object-fit: cover;
        }

        h6 {
          height: 32px;
          line-height: 32px;
          white-space: nowrap;
          overflow: hidden;
          text-overflow: ellipsis;
          background: var(--classD);
          text-align: center;
          font-size: 13px;
          color: var(--minor);
          padding: 0 12px;
        }
      }
    }
  }

  &__friends {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-bottom: 15px;

    &-item {
      list-style: none !important;
      line-height: 1.5 !important;

      .contain {
        display: block;
        overflow: hidden;
        padding: 15px;
        color: #fff;
        word-break: break-word;
        transform: translate3d(0, 0, 0) scale(1);
        transform-origin: bottom center;
        transition: transform 0.35s;
        border-radius: 8px 0 28px 0;

        &:hover {
          transform: translate3d(0, -2px, 0) scale(1.01);
          // box-shadow: 0 34px 20px -24px rgba(136, 161, 206, 0.3);
        }

        .title {
          position: relative;
          font-weight: bold;

          &::after {
            content: "";
            position: absolute;
            bottom: -5px;
            left: 0;
            width: 100%;
            height: 1px;
            background: #fff;
          }
        }

        .content {
          display: flex;
          justify-content: space-between;
          align-items: center;
          margin-top: 15px;

          .desc {
            flex: 1;
            margin-right: 10px;
            word-break: break-all;
            display: -webkit-box;
            -webkit-line-clamp: 2;
            /*! autoprefixer: ignore next */
            -webkit-box-orient: vertical;
            overflow: hidden;
            text-overflow: ellipsis;
          }

          .avatar {
            cursor: pointer;
            width: 40px;
            height: 40px;
            min-width: 40px;
            min-height: 40px;
            border-radius: 50%;
            object-fit: cover;
          }
        }
      }
    }
  }

  .link-requirement {
    padding-left: 30px;
  }

  .joe_comment_box {
    padding-top: 20px;

    h2 {
      display: none;
    }
  }
}

.joe_leaving {
  position: relative;
  padding-top: 15px;

  &-list {
    position: relative;
    height: 500px;

    .item {
      display: none;
      position: absolute;
      width: 200px;
      overflow: hidden;
      box-shadow: 0 2px 10px 1px rgba(0, 0, 0, 0.2);
      user-select: none;
      opacity: 0.88;

      .user {
        display: flex;
        align-items: center;
        padding: 0 10px;
        color: rgba(255, 255, 255, 1);
        border-bottom: 1px dashed rgba(255, 255, 255, 0.85);
        height: 40px;
        cursor: move;

        .avatar {
          cursor: default;
          transform: translate3d(0, 0, 0);
          width: 20px;
          height: 20px;
          border-radius: 50%;
        }

        .nickname {
          min-width: 0;
          flex: 1;
          margin: 0 5px;
          font-size: 13px;
          white-space: nowrap;
          overflow: hidden;
          text-overflow: ellipsis;

          a {
            color: rgba(255, 255, 255, 1);
          }
        }

        .date {
          margin-left: auto;
          font-size: 12px;
        }
      }

      .wrapper {
        padding: 10px;

        .content {
          height: 140px;
          overflow-y: auto;
          word-break: break-word;
          line-height: 24px;
          color: #fff;

          .draw_image {
            max-width: 100%;
          }

          .owo_image {
            max-height: 24px;
          }

          pre code {
            white-space: pre-line;
            word-break: break-all;
          }
        }
      }

      // &:hover{
      //   transition: transform 0.25s;
      //   transform: rotate(-5deg)
      // }
    }
  }

  .joe_loading {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate3d(-50%, -50%, 0);
  }

  &-none {
    display: none;
    padding: 15px 0;
    text-align: center;
    user-select: none;
    color: var(--minor);
  }
}

.joe_footer {
  color: var(--minor);
  background: var(--background);
  border-top: 1px solid var(--classD);

  .joe_container {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: space-between;
    margin: 0 auto;
    padding: 15px 20px;

    &.central {
      justify-content: center;

      .item {
        text-align: center;
      }
    }

    .item {
      a {
        margin: 0 5px;
      }
    }

    a {
      color: var(--minor);
      transition: all 0.35s;

      &:hover {
        color: var(--theme);
      }
    }

    .site_powered {
      padding: 2px 0 !important;

      .a-powered {
        font-weight: 600;
        color: #007cff;
      }

      .a-theme {
        font-weight: 600;
        color: var(--theme);
      }
    }

    .site_driven {
      a {
        margin: 0 3px;
      }

      img {
        height: 18px;
      }
    }

    .site_life {
      padding-top: 2px;
      font-size: 12px;

      >i {
        display: inline-block;
        margin-right: 3px;
        font-size: 14px;
        color: #5dad16;
        vertical-align: bottom;
        animation: swing 1s ease infinite;
      }
    }

    .site_police {
      padding-top: 5px;

      a {
        margin-left: 0;
        font-size: 12px;

        &::before {
          display: inline-block;
          margin-right: 4px;
          vertical-align: text-bottom;
          content: "";
          width: 14px;
          height: 14px;
          background: url() no-repeat center;
          background-size: 100% 100%;
        }
      }
    }

    .site_visit_number {
      margin-left: 5px;
      font-size: 13px;

      span {
        color: var(--theme);
      }
    }

    .rss {
      i {
        font-size: 14px;
        color: #f18651;
      }
    }
  }

  &.fixed {
    position: fixed;
    width: 100%;
    bottom: 0;
    z-index: 2;
    box-shadow: -2px 0 4px 0 var(--classG);
  }

  &.full {
    .joe_container {
      max-width: 100% !important;
    }
  }
}

.joe_pagination {
  display: flex;
  align-items: center;
  justify-content: center;
  padding-top: 36px;
  padding-bottom: 30px;

  li {
    margin-left: 5px;
    user-select: none;
    overflow: hidden;
    background: var(--sib-background);
    border-radius: 3px;
    box-shadow: var(--box-shadow-pager);

    a {
      display: block;
      height: 32px;
      line-height: 32px;
      padding: 0 14px;
      color: var(--main);

      &:hover {
        color: #fff;
        background: var(--theme);
      }
    }

    &.prev {
      border-radius: 6px 3px 3px 6px;
    }

    &.next {
      border-radius: 3px 6px 6px 3px;
    }

    &.active {
      font-weight: 600;
      background: var(--theme);
      box-shadow: 0 3px 20px -2px var(--theme);

      a {
        color: #fff;
      }
    }

    &.disabled {
      pointer-events: none;

      a {
        color: var(--classA);
      }
    }
  }
}

.joe_action {
  pointer-events: none;
  position: fixed;
  bottom: 90px;
  right: 30px;
  z-index: 90;

  &_item {
    position: relative;
    display: flex;
    align-items: center;
    justify-content: center;
    width: 40px;
    height: 40px;
    background: var(--sib-background);
    border-radius: 50%;
    cursor: pointer;
    box-shadow: 0 0 10px rgba(0, 0, 0, 0.1), 0 5px 20px rgba(0, 0, 0, 0.2);

    svg {
      position: absolute;
      width: 25px;
      height: 25px;
      fill: var(--theme);
    }

    &.back2top {
      pointer-events: none;
      visibility: hidden;
      margin-bottom: 15px;
      transform: scale(0);
      transition: visibility 0.35s, transform 0.35s;

      &.active {
        pointer-events: auto;
        visibility: visible;
        transform: scale(1);
      }
    }

    &.mode {
      pointer-events: auto;

      svg {
        transform: scale(0);
        opacity: 0;
        transition: transform 0.85s, opacity 0.85s;

        &.active {
          transform: scale(1);
          opacity: 1;
        }
      }
    }
  }
}

.joe_comment_box {
  text-align: center;

  h2 {
    display: inline-block;
    padding: 28px 110px;
    font-size: 18px;
    color: var(--routine);
    background: url(../../img/t_left.png) 0/90px auto,
      url(../../img/t_right.png) 100%/90px auto;
    background-repeat: no-repeat;
    filter: grayscale(1);
  }
}

.joe_comment {
  padding: 20px;
  background: var(--background);
  border-radius: var(--radius-wrap);
  box-shadow: var(--box-shadow);

  &__title {
    font-weight: 500;
    text-align: center;
    font-size: 24px;
    color: var(--main);
    text-shadow: var(--text-shadow);
    border-bottom: 1px solid var(--classC);
    margin-bottom: 15px;
    padding-bottom: 15px;
  }

  &__close {
    display: flex;
    align-items: center;
    justify-content: center;
    color: var(--routine);

    &-icon {
      fill: var(--routine);
      margin-right: 5px;
    }
  }

  &__respond {
    &-type {
      display: flex;
      align-items: center;
      justify-content: flex-end;

      .item {
        background: var(--classD);
        padding: 0 15px;
        height: 32px;
        color: var(--main);
        border: none;
        transition: color 0.35s, background 0.35s;

        &:first-child {
          border-top-left-radius: var(--radius-inner);
        }

        &:last-child {
          border-top-right-radius: var(--radius-inner);
        }

        &.active {
          color: #fff;
          background: var(--theme);
        }
      }
    }

    &-form {
      border-radius: 6px 0 6px 6px;
      background: var(--classD);

      .head {
        display: flex;
        align-items: center;
        border-bottom: 1px solid var(--classA);

        .list {
          flex: 1;

          input {
            width: 100%;
            border: none;
            background: transparent;
            padding: 0 15px;
            height: 40px;
            color: var(--routine);
          }

          &:nth-child(2) {
            position: relative;

            &::after,
            &::before {
              content: "";
              position: absolute;
              top: 50%;
              transform: translateY(-50%);
              width: 1px;
              height: 15px;
              background: var(--classA);
            }

            &::before {
              left: 0;
            }

            &::after {
              right: 0;
            }
          }
        }
      }

      .body {
        padding: 15px;

        .text {
          width: 100%;
          height: 200px;
          border: none;
          resize: none;
          vertical-align: middle;
          color: var(--routine);
          background: transparent;
        }

        .draw {
          position: relative;
          width: 100%;

          .line {
            display: flex;
            align-items: center;
            position: absolute;
            top: 10px;
            left: 10px;
            user-select: none;

            li {
              cursor: pointer;
              margin-right: 10px;
              color: var(--main);
              transition: color 0.35s;

              &.active {
                color: var(--theme);
              }
            }
          }

          .color {
            display: flex;
            align-items: center;
            position: absolute;
            bottom: 10px;
            left: 10px;

            li {
              width: 20px;
              height: 20px;
              border-radius: 50%;
              margin: 0 5px;
              cursor: pointer;
              transition: box-shadow 0.35s;

              &.active {
                box-shadow: 0 4px 10px rgba(0, 0, 0, 0.35);
              }

              &:nth-child(1) {
                background: #303133;
              }

              &:nth-child(2) {
                background: #67c23a;
              }

              &:nth-child(3) {
                background: #e6a23c;
              }

              &:nth-child(4) {
                background: #f56c6c;
              }
            }
          }

          .icon {
            position: absolute;
            right: 10px;
            cursor: pointer;
            fill: var(--minor);
            user-select: none;

            &-undo {
              top: 10px;
            }

            &-animate {
              bottom: 10px;
            }
          }

          canvas {
            background: var(--background);
            border-radius: var(--radius-inner);
          }
        }
      }

      .foot {
        position: relative;
        display: flex;
        align-items: center;
        justify-content: space-between;
        padding: 0 15px 15px;

        .owo {
          min-height: 32px;
          padding-top: 3px;

          .seat {
            text-align: center;
            color: var(--routine);
            height: 26px;
            line-height: 26px;
            background: var(--background);
            opacity: 0.85;
            border-radius: 13px;
            width: 70px;
          }
        }

        .submit {
          position: absolute;
          top: 0;
          right: 15px;
          white-space: nowrap;

          .cancle {
            display: none;
            color: var(--main);
            cursor: pointer;
            margin-right: 10px;
            transition: color 0.35s;

            &:hover {
              color: var(--theme);
            }
          }

          button {
            border-radius: 3px;
            height: 32px;
            padding: 0 15px;
            border: none;
            background: var(--theme);
            color: #fff;
            font-size: 14px;

            &:hover {
              animation: 5s ease-in-out 0s infinite normal none running shaked;
            }
          }
        }
      }
    }
  }

  .comment-list {
    padding-top: 15px;

    &__item {
      &-contain {
        .term {
          display: flex;
          margin-bottom: 15px;

          .avatar {
            width: 48px;
            height: 48px;
            border-radius: 50%;
            margin-right: 15px;
            padding: 3px;
            border: 1px solid var(--classD);
            object-fit: cover;
          }

          .content {
            min-width: 0;
            flex: 1;
            border-bottom: 1px solid var(--classC);
            padding-bottom: 15px;

            .user {
              display: flex;
              align-items: center;
              margin-bottom: 8px;
              line-height: 20px;
              color: var(--main);

              .author {
                overflow: hidden;
                white-space: nowrap;
                text-overflow: ellipsis;
                margin-right: 10px;

                a {
                  color: #409eff;
                }
              }

              .owner {
                flex-shrink: 0;
                background: var(--theme);
                color: #fff;
                padding: 0 5px;
                border-radius: 2px;
                font-style: normal;
              }

              .agent {
                margin-left: auto;
                font-size: 12px;
                color: var(--minor);
              }

              .waiting {
                color: #e6a23c;
                font-style: normal;
              }
            }

            .substance {
              width: 100%;
              background: var(--classD);
              padding: 12px 15px;
              border-radius: 0 var(--radius-inner) var(--radius-inner) 10px;
              color: var(--main);
              margin-bottom: 8px;
              word-break: break-word;
              line-height: 24px;

              .parent {
                color: #388bff;
                margin-bottom: 5px;
                user-select: none;
                font-weight: 500;
              }

              .owo_image {
                height: 22px;
              }

              .draw_image {
                max-width: 100%;
              }
            }

            .handle {
              display: flex;
              align-items: center;
              color: var(--minor);

              .date {
                margin-right: 10px;
              }

              .reply {
                display: flex;
                align-items: center;
                color: var(--main);
                font-size: 13px;
                cursor: pointer;
                transition: color 0.35s;

                .icon {
                  margin-right: 5px;
                }

                &:hover {
                  color: var(--theme);

                  .icon {
                    fill: var(--theme);
                  }
                }
              }
            }
          }
        }
      }

      &-children {
        padding-left: 63px;

        .comment-list__item-children {
          padding-left: 0;
        }
      }

      .joe_comment__respond {
        margin-left: 63px;
        margin-bottom: 15px;
        animation: showComment 0.5s;
      }
    }

    .comment-list {
      padding-top: 0;
    }
  }

  .joe_pagination {
    padding-top: 0;
  }
}

.joe_run {

  &__day,
  &__hour,
  &__minute,
  &__second {
    font-weight: 500;
    color: var(--theme);
  }
}

.joe_owo {
  &__contain {
    position: relative;

    .seat {
      user-select: none;
      cursor: pointer;
    }

    .box {
      width: 100%;
      display: none;
      background: var(--background);
      border-radius: var(--radius-inner);
      overflow: hidden;
      margin-top: 15px;

      .scroll {
        display: none;
        max-height: 200px;
        overflow-y: auto;
        overscroll-behavior: none;
        padding: 5px;

        .item {
          text-align: center;
          width: calc(100% / 18);
          display: inline-block;
          padding: 5px;
          cursor: pointer;
          border-radius: var(--radius-inner);
          transition: background 0.25s;

          img {
            max-width: 100%;
            max-height: 100%;
          }

          &:hover {
            background: var(--classD);
          }
        }

        &:nth-child(3) {
          .item {
            color: var(--routine);
            width: calc(100% / 5);
          }
        }
      }

      .bar {
        display: flex;
        align-items: center;
        border-top: 1px solid var(--classC);

        .item {
          line-height: 30px;
          padding: 0 10px;
          cursor: pointer;
          color: var(--routine);
          transition: background 0.25s, color 0.25s;

          &.active {
            color: #fff;
            background: var(--theme);
          }
        }
      }
    }
  }
}

.joe_nodata {
  padding: 20px;
  color: var(--minor);
}

.joe_advert-large,
.joe_advert-small {
  position: relative;
  min-height: 32px;
  background: var(--sib-background);

  img {
    display: block;
    width: 100%;
    object-fit: cover;
  }

  .icon {
    position: absolute;
    z-index: 1;
    top: 6px;
    right: 6px;
    font-size: 12px;
    background: rgba(0, 0, 0, 0.25);
    padding: 2px 5px;
    border-radius: 2px;
    color: #ebebeb;
    pointer-events: none;
  }
}

.joe_advert-large {
  margin-top: 10px;
  overflow: hidden;
  border-radius: var(--radius-inner);
}

.canvas-backdrop {
  pointer-events: none;
  position: fixed;
  left: 0;
  top: 0;
  right: 0;
  bottom: 0;
  z-index: 0;

  &.above {
    z-index: 90;
  }
}

.blur-up {
  filter: blur(5px) !important;
  transition: filter 400ms;
}

.blur-up.lazyloaded {
  filter: blur(0) !important;
}

.profile-color-modes-illu-frame {
  opacity: 0;
  animation: profile-color-modes-illu-anim-frame-show 0s forwards,
    profile-color-modes-illu-anim-frame-hide 0s forwards;
}

.profile-color-modes-illu-red {
  stroke: #da3633;
  animation-delay: 0.4s;
  animation-duration: 0.1s;
}

.profile-color-modes-illu-orange {
  stroke: #f0883e;
  animation-delay: 0.5s;
  animation-duration: 0.1s;
}

.profile-color-modes-illu-purple {
  stroke: #8957e5;
  animation-delay: 0.6s;
  animation-duration: 0.1s;
}

.profile-color-modes-illu-green {
  stroke: #3fb950;
  animation-delay: 0.8s;
  animation-duration: 0.2s;
  animation-timing-function: cubic-bezier(0.47, 2.92, 0.84, -1.5);
}

.profile-color-modes-illu-blue {
  stroke: #388bfd;
  animation-delay: 0.7s;
  animation-duration: 0.1s;
}

.profile-color-modes-illu-group {
  animation: profile-color-modes-illu-anim 0.2s cubic-bezier(0.72, 0.08, 1, 0.68) backwards;
}

.profile-color-modes-illu-frame:first-child {
  opacity: 1;
  animation: profile-color-modes-illu-anim-frame-hide 0s forwards;
  animation-delay: 1.8s;
}

.profile-color-modes-illu-frame:nth-child(8) {
  animation: profile-color-modes-illu-anim-frame-show 0s forwards;
  animation-delay: 3.56s;
}

.profile-color-modes-illu-frame:nth-child(2) {
  animation-delay: 1.8s, 2.58s;
}

.profile-color-modes-illu-frame:nth-child(3) {
  animation-delay: 2.58s, 2.66s;
}

.profile-color-modes-illu-frame:nth-child(4) {
  animation-delay: 2.66s, 2.78s;
}

.profile-color-modes-illu-frame:nth-child(5) {
  animation-delay: 2.78s, 2.84s;
}

.profile-color-modes-illu-frame:nth-child(6) {
  animation-delay: 2.84s, 3.44s;
}

.profile-color-modes-illu-frame:nth-child(7) {
  animation-delay: 3.44s, 3.56s;
}

.profile-color-modes-illu-frame:nth-child(9),
.profile-color-modes-illu-frame:nth-child(10) {
  animation: none;
}

// 动画
.showInUp {
  animation: showInUp 0.35s;
}

@keyframes showInUp {
  from {
    opacity: 0;
    transform: translate3d(0, 100px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

.topInDown {
  animation: topInDown 0.8s;
}

.showInDown {
  animation: showInDown 0.35s;
}

@keyframes topInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -60px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes showInDown {
  from {
    opacity: 0;
    transform: translate3d(0, -100px, 0);
  }

  to {
    opacity: 1;
    transform: translate3d(0, 0, 0);
  }
}

@keyframes im-emotion-step {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }

  to {
    -webkit-transform: translateY(-100%);
    transform: translateY(-100%);
  }
}

@keyframes dung {
  0% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }

  30% {
    -webkit-transform: translateY(-2px);
    transform: translateY(-2px);
  }

  60% {
    -webkit-transform: translateY(2px);
    transform: translateY(2px);
  }

  80% {
    -webkit-transform: translateY(-1px);
    transform: translateY(-1px);
  }

  90% {
    -webkit-transform: translateY(1px);
    transform: translateY(1px);
  }

  100% {
    -webkit-transform: translateY(0);
    transform: translateY(0);
  }
}

@keyframes wobble-bottom {
  16.65% {
    transform: skew(-12deg);
  }

  33.3% {
    transform: skew(10deg);
  }

  49.95% {
    transform: skew(-6deg);
  }

  66.6% {
    transform: skew(4deg);
  }

  83.25% {
    transform: skew(-2deg);
  }

  100% {
    transform: skew(0);
  }
}

@keyframes showComment {
  0% {
    opacity: 0;
    transform: scale(0.3);
  }

  50% {
    opacity: 1;
    transform: scale(1.05);
  }

  70% {
    transform: scale(0.9);
  }

  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes box_shadow {
  0% {
    box-shadow: 0 0 0 0 #f56c6c;
  }
}

@keyframes progress {
  0% {
    background-position: 0 0;
  }

  100% {
    background-position: 30px 0;
  }
}

@keyframes list_thumbnail_loading {
  0% {
    transform: scale(0.85);
  }

  100% {
    transform: scale(1);
  }
}

@keyframes list_title_loading {
  0% {
    width: 80%;
  }

  100% {
    width: 95%;
  }
}

@keyframes list_abstract_loading {
  0% {
    width: 60%;
  }

  100% {
    width: 80%;
  }
}

@keyframes profile-color-modes-illu-anim {
  0% {
    stroke: #666;
  }
}

@keyframes profile-color-modes-illu-anim-frame-show {
  0% {
    opacity: 0;
    animation-timing-function: ease-out;
  }

  to {
    opacity: 1;
  }
}

@keyframes profile-color-modes-illu-anim-frame-hide {
  0% {
    opacity: 1;
    animation-timing-function: ease-in;
  }

  to {
    opacity: 0;
  }
}

@keyframes shaked {
  2% {
    transform: translateY(1.5px) rotate(1.5deg);
  }

  4% {
    transform: translateY(-1.5px) rotate(-0.5deg);
  }

  6% {
    transform: translateY(1.5px) rotate(-1.5deg);
  }

  8% {
    transform: translateY(-1.5px) rotate(-1.5deg);
  }

  10% {
    transform: translateY(2.5px) rotate(1.5deg);
  }

  12% {
    transform: translateY(-0.5px) rotate(1.5deg);
  }

  14% {
    transform: translateY(-1.5px) rotate(1.5deg);
  }

  16% {
    transform: translateY(-0.5px) rotate(-1.5deg);
  }

  18% {
    transform: translateY(0.5px) rotate(-1.5deg);
  }

  20% {
    transform: translateY(-1.5px) rotate(2.5deg);
  }

  22% {
    transform: translateY(0.5px) rotate(-1.5deg);
  }

  24% {
    transform: translateY(1.5px) rotate(1.5deg);
  }

  26% {
    transform: translateY(0.5px) rotate(0.5deg);
  }

  28% {
    transform: translateY(0.5px) rotate(1.5deg);
  }

  30% {
    transform: translateY(-0.5px) rotate(2.5deg);
  }

  32%,
  34% {
    transform: translateY(1.5px) rotate(-0.5deg);
  }

  36% {
    transform: translateY(-1.5px) rotate(2.5deg);
  }

  38% {
    transform: translateY(1.5px) rotate(-1.5deg);
  }

  40% {
    transform: translateY(-0.5px) rotate(2.5deg);
  }

  42% {
    transform: translateY(2.5px) rotate(-1.5deg);
  }

  44% {
    transform: translateY(1.5px) rotate(0.5deg);
  }

  46% {
    transform: translateY(-1.5px) rotate(2.5deg);
  }

  48% {
    transform: translateY(-0.5px) rotate(0.5deg);
  }

  50% {
    transform: translateY(0.5px) rotate(0.5deg);
  }

  52% {
    transform: translateY(2.5px) rotate(2.5deg);
  }

  54% {
    transform: translateY(-1.5px) rotate(1.5deg);
  }

  56% {
    transform: translateY(2.5px) rotate(2.5deg);
  }

  58% {
    transform: translateY(0.5px) rotate(2.5deg);
  }

  60% {
    transform: translateY(2.5px) rotate(2.5deg);
  }

  62% {
    transform: translateY(-0.5px) rotate(2.5deg);
  }

  64% {
    transform: translateY(-0.5px) rotate(1.5deg);
  }

  66% {
    transform: translateY(1.5px) rotate(-0.5deg);
  }

  68% {
    transform: translateY(-1.5px) rotate(-0.5deg);
  }

  70% {
    transform: translateY(1.5px) rotate(0.5deg);
  }

  72% {
    transform: translateY(2.5px) rotate(1.5deg);
  }

  74% {
    transform: translateY(-0.5px) rotate(0.5deg);
  }

  76% {
    transform: translateY(-0.5px) rotate(2.5deg);
  }

  78% {
    transform: translateY(-0.5px) rotate(1.5deg);
  }

  80% {
    transform: translateY(1.5px) rotate(1.5deg);
  }

  82% {
    transform: translateY(-0.5px) rotate(0.5deg);
  }

  84% {
    transform: translateY(1.5px) rotate(2.5deg);
  }

  86% {
    transform: translateY(-1.5px) rotate(-1.5deg);
  }

  88% {
    transform: translateY(-0.5px) rotate(2.5deg);
  }

  90% {
    transform: translateY(2.5px) rotate(-0.5deg);
  }

  92% {
    transform: translateY(0.5px) rotate(-0.5deg);
  }

  94% {
    transform: translateY(2.5px) rotate(0.5deg);
  }

  96% {
    transform: translateY(-0.5px) rotate(1.5deg);
  }

  98% {
    transform: translateY(-1.5px) rotate(-0.5deg);
  }

  0%,
  100% {
    transform: translate(0px) rotate(0deg);
  }
}

@keyframes overdue {
  0% {
    clip-path: circle(0 at 0 0);
  }

  100% {
    clip-path: circle(100%);
  }
}

@keyframes progress-active {
  0% {
    opacity: 0.3;
    width: 0;
  }

  to {
    opacity: 0;
    width: 100%;
  }
}

@keyframes lamp-background {

  0%,
  24.9% {
    background-color: #54b5db;
  }

  25%,
  49.9% {
    background-color: #da4733;
  }

  50%,
  74.9% {
    background-color: #3b78e7;
  }

  75%,
  to {
    background-color: #fdba2c;
  }
}

@keyframes lamp-front {
  0% {
    transform: scaleX(0);
    background-color: #da4733;
  }

  24.9% {
    transform: scaleX(0.5);
    background-color: #da4733;
  }

  25% {
    transform: scaleX(0);
    background-color: #3b78e7;
  }

  49.9% {
    transform: scaleX(0.5);
    background-color: #3b78e7;
  }

  50% {
    transform: scaleX(0);
    background-color: #fdba2c;
  }

  74.9% {
    transform: scaleX(0.5);
    background-color: #fdba2c;
  }

  75% {
    transform: scaleX(0);
    background-color: #409eff;
  }

  to {
    transform: scaleX(0.5);
    background-color: #409eff;
  }
}

@keyframes showHeaderTitle {
  0% {
    opacity: 0.25;
    transform: scale(0.25);
  }

  100% {
    opacity: 1;
    transform: scale(1);
  }
}

@keyframes twinkle {
  to {
    box-shadow: inset 0 0 15px #f4b393;
  }
}

@keyframes twinkle-night {
  to {
    box-shadow: inset 0 0 15px #595997;
  }
}

@keyframes dong {
  0% {
    transform: translateY(3px) scaleY(0.95);
  }

  100% {
    transform: translateY(-3px) scaleY(1);
  }
}

// 媒体查询
@media (min-width: 576px) {
  #Joe>.joe_container {
    max-width: 540px;
  }
}

@media (min-width: 768px) {
  #Joe>.joe_container {
    max-width: 720px;
  }
}

@media (min-width: 992px) {
  #Joe>.joe_container {
    max-width: 960px;
  }
}

@media (min-width: 1200px) {
  #Joe>.joe_container {
    max-width: 1140px;
  }
}

.takagi {
  z-index: 50 !important;
}